php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.08.2011, 20:20  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 596
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard [Erledigt] Zwei oder eine Tabelle für die Benutzer einer Webapplikation ?

Eigenbemühungen:
Google bringt mich bei dieser Frage leider nicht weiter.
Ich habe bereits "ab wann zwei tabellen users", "mehrere tabellen users", "sinnvoll zwei tabellen" bei google eingegeben.

Ich bekomme meistens Fragen wie ein JOIN Statement funktioniert o.Ä..

Vorspiel:
Vorher hatte ich solche Daten in meiner Users Tabelle:

Zitat:
Gender
First_Name
Last_Name
dob
e_mail
username
password
dynsalt
role
active
registered_on
Jetzt ist die Datenmenge jedoch angewachsen auf:

Zitat:
Gender
First_Name
Last_Name
Address
postcode
city
dob
e_mail
bank_first_name
bank_last_name
bank_account_number
bank_code
username
password
dynsalt
role
active
registered_on
Die Frage ist, ob es sinnvoll ist oder "best practise" Daten in eine extra Tabelle auszulagern.

Ich hatte z.B. an eine users_details Tabelle gedacht.
In users würde dann nur noch folgendes stehen:

Variante 1.)

Zitat:
username
password
dynsalt
role
active
registered_on
Der Rest würde entsprechend in die users_details kommen.

Variante 2.)

Zitat:
Gender
First_Name
Last_Name
username
password
dynsalt
role
active
registered_on
Der Rest würde entsprechend in die users_details kommen.
First & Last Name würde ich in der normalen Users belassen, um schnell an einen bestimmten Account zu kommen anhand des Namens.

Variante 3.)
Zitat:
Gender
First_Name
Last_Name
dob
e_mail
username
password
dynsalt
role
active
registered_on
Der Rest würde entsprechend in die users_details kommen.
Der Sinn hinter dieser Aufteilung ist, dass das die Standarddaten sind welche bei der Registrierung aufgenommen werden.
Alle Dateien die später intern hinterlegt werden sind dann quasi die "details".

Variante 4.)
Alle Daten in eine Tabelle packen.

Meine Frage:
Macht man so etwas überhaupt, nur um eine Tabelle nicht voll zu hauen ?
(Als Referenz kenne ich eine Programmiererin die alles in einer Tabelle hat und nichts extra splittet)

Sollte die Frage mit ja beantwortet werden:
Macht die vorgeschlagene Aufteilung von mir Sinn oder gibt es eine sinnvollere ?
Welche Variante würdet ihr wählen ?


P.S.:
dob = date of birth

P.P.S.:
- Ich hätte es in das Software-Design Unterforum gestellt, wenn dort nicht stehen würde "auf PHP Ebene" -
Daher habe ich mich für die DB Sektion entschieden.

Geändert von dreamcatcher (14.08.2011 um 20:29 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.08.2011, 20:28  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Wenn du das auftrennen willst, dann würde ich die Unterteilung vornehmen in Werte, die für den Betrieb deines Systems absolut notwendig sind (Username, Passwort, Email, ...), und anderen Werten, die vielleicht “nice to have” sind, aber nicht wirklich essentiell (bspw. der persönliche Kram, den ein Nutzer in seinem Profil über sich preisgeben möchte). Das könnten schon mal problemlos zwei Tabellen account und profile sein.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 14.08.2011, 20:35  
Neuer Benutzer
 
Registriert seit: 05.07.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
JuKu befindet sich auf einem aufstrebenden Ast
Standard

Ich würde es auch so machen.
Die Daten, die du z.B. zum anmelden brauchst, in die eine Tabelle und das Profil-Zeugs, ... in die andere Tabelle.
Muss man sich vorher überlegen, was man oft braucht, in die 1. Tabelle.
Bei Anmeldung, Brauchst du dann kein LEFT JOIN, ...
JuKu ist offline   Mit Zitat antworten
Alt 14.08.2011, 21:22  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Ich habe bereits "ab wann zwei tabellen users", "mehrere tabellen users", "sinnvoll zwei tabellen" bei google eingegeben.
Also mit Verlaub.. Du glaubst doch nicht, dass man mit solchen Begriffen solche Fragen recherchiert bekommt! Schon davon ab, dass die Frage sehr subjektiv ist - je nach Aspekten wie Performance, wirst DU das Problem schon näher eingrenzen müssen.

Das Konzept Normalisierung ist Dir doch bekannt oder?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 15.08.2011, 09:28  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Über welche Datenmengen reden wir denn hier?
Mach doch einfach mal den Versuch, die ungeteilte Tabelle und alternativ die "Rumpftabelle" abzufragen. Wenn da Zeitunterschiede auftreten (ich meine solche, die in der Praxis eine Rolle spielen) hast Du deine Indizes nicht gut gesetzt, Deine Abfrage sehr unklug aufgebaut oder tatsächlich Datenmengen, auf die Google neidisch wäre.
Kurz und gut: es gibt nur ganz selten einen Grund, eine 1:1-Beziehung zwischen Tabellen aufzubauen. Außer dem Fall der Riesendatenmengen (Bilder oder andere BLOBs) fällt mir noch die Rechteverwaltung ein, und selbst da würde ich zuerst mal über eine Aufteilung mit Views nachdenken.
achtelpetit ist offline   Mit Zitat antworten
Alt 01.09.2011, 23:12  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 596
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

@nikosch
Ich wusste nicht wonach man suchen soll, daher fing ich "umgangssprachlich" an.

Der Begriff der Normalisierung war mir noch nicht bekannt.
Das ist etwas, was ich unterbewusst anwende, aber noch nicht als Thema fassen konnte.

Wikipedia hat sehr geholfen.
Ich lasse alles in einer Table, erspart mir einige unnötigen Joins.
dreamcatcher ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dynamische Grafik - Daten aus MySQL Tabelle von Benutzer per ID beziehen Stip PHP Einsteiger 13 27.06.2011 19:52
Ausgabe Tabellen dynamisch aus Tabelleninhalt erstellen titus81 Datenbanken 5 20.05.2011 19:58
Eine Tabelle, oder lieber mit zweite Tabelle arbeiten und diese Joinen? freshjayson Datenbanken 3 11.04.2011 13:04
Mysql Spalte einer Tabelle als Spalte einer zweiten Tabelle Hoschi Datenbanken 2 04.03.2011 21:23
"Password vergessen" Funktion - Design Hagbard-Celine Datenbanken 11 07.02.2011 12:59
[Erledigt] Ausgabe einer MySQL Tabelle umdrehen Index PHP Einsteiger 11 22.01.2011 19:42
Scriptsuche Daten aus HTML Tabelle A in HTML Tabelle B einfügen headbannger83 Scriptbörse 1 10.01.2011 15:39
HTML Tabelle Werte ändern -> direkt mit AJAX speichern Atikos JavaScript, Ajax und mehr 3 31.12.2010 01:15
Design einer DB für mehrsprachigkeit Squall Software-Design 35 08.10.2010 13:09
pro Benutzer eine Tabelle mit Feldern oomworld PHP Tipps 2009 8 19.04.2009 13:53
where Abfrage in anderer Tabelle?? Matthiasnet Datenbanken 10 11.04.2007 17:35
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
tabelle in tabelle ohne aussenrand noskule HTML, Usability und Barrierefreiheit 6 25.08.2005 14:17
Sortieren anhand einer zweiten Tabelle PHP Tipps 2004 6 20.09.2004 09:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mehrere tabellen sinnvoll php

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum