guten Morgen,
ich hätte da mal eine Frage zum Datenbanklayout - evtl könnt ihr mir ja den einen oder anderen Tipp geben. Ich bastel momentan am Layout für eine SQL-Datenbank die eine Art Community verwalten soll. Das ganze ist nicht unbedingt ernst zu nehmen sondern dient erst einmal mehr der Übung. Bei den meissten Sachen bin ich mir eigentlich sicher das ich eine für meine Anforderungen passende Lösung gefunden habe. Lediglich bei einem bin ich mir unsicher.
Wie es bei solchen Seiten nun einmal so ist muss ich Benutzer verwalten. So ein Benutzer hat die verschiedensten Eigenschaften/Attribute - wie ihr es auch immer nennen wollt. Das fängt ja ganz trivial an mit einer ID einem Namen, Nick persönliche Angaben... usw. mittlerweile kann ich in der zugehörigen Tabelle Benutzer fast 30 Felder vergeben.
Nun meine Frage: Wie organisiere ich so einen Benutzer am geschicktesten? Nehme ich eine Tabelle und packe da alles hinein, verpasse der Tabelle evtl noch einige Indices damit ich nach bestimmten Kriterien schnell suchen kann?
Oder mache ich einfach aus der einen großen Tabelle 2 Tabellen - die erste mit der eigentlichen ID und den für die meissten Seiten intresannten Werten wie Nick, onlinestatus benutzerbild... und die andere Tabelle hält den Rest vor der hauptsächlich auf einer Profilseite angezeigt werden würde.
Von der reinen Geschwindigkeit her würde ich vermuten das ich mit der ersten Variante am schnellsten eine komplette Profilseite aus der Datenbank abrufen kann. Bringt mir die 2. Variante geschwindigkeitsvorteile wenn ich ein kleines Forum einbauen würde? Da wären ja nicht alle Profildaten erforderlich - sondern nur ein paar aus der kleineren Tabelle.
Allerdings muss ich ja in beiden Fällen für gewöhnlich die Benutzerdaten anhand einer ID suchen - da würde die Breite der Tabelle ja keine Rolle spielen, oder?
Wie ihr wahrscheinlich gemerkt habt bin ich recht unentschlossen und leicht verwirrt. Vielleicht kann mir ja mal der eine oder Andere nen Hinweis geben? Vielleicht gibts ja auch Lösungen an die ich noch nicht gedacht habe?
nu aber erst mal jute nacht...
ich hätte da mal eine Frage zum Datenbanklayout - evtl könnt ihr mir ja den einen oder anderen Tipp geben. Ich bastel momentan am Layout für eine SQL-Datenbank die eine Art Community verwalten soll. Das ganze ist nicht unbedingt ernst zu nehmen sondern dient erst einmal mehr der Übung. Bei den meissten Sachen bin ich mir eigentlich sicher das ich eine für meine Anforderungen passende Lösung gefunden habe. Lediglich bei einem bin ich mir unsicher.
Wie es bei solchen Seiten nun einmal so ist muss ich Benutzer verwalten. So ein Benutzer hat die verschiedensten Eigenschaften/Attribute - wie ihr es auch immer nennen wollt. Das fängt ja ganz trivial an mit einer ID einem Namen, Nick persönliche Angaben... usw. mittlerweile kann ich in der zugehörigen Tabelle Benutzer fast 30 Felder vergeben.
Nun meine Frage: Wie organisiere ich so einen Benutzer am geschicktesten? Nehme ich eine Tabelle und packe da alles hinein, verpasse der Tabelle evtl noch einige Indices damit ich nach bestimmten Kriterien schnell suchen kann?
Oder mache ich einfach aus der einen großen Tabelle 2 Tabellen - die erste mit der eigentlichen ID und den für die meissten Seiten intresannten Werten wie Nick, onlinestatus benutzerbild... und die andere Tabelle hält den Rest vor der hauptsächlich auf einer Profilseite angezeigt werden würde.
Von der reinen Geschwindigkeit her würde ich vermuten das ich mit der ersten Variante am schnellsten eine komplette Profilseite aus der Datenbank abrufen kann. Bringt mir die 2. Variante geschwindigkeitsvorteile wenn ich ein kleines Forum einbauen würde? Da wären ja nicht alle Profildaten erforderlich - sondern nur ein paar aus der kleineren Tabelle.
Allerdings muss ich ja in beiden Fällen für gewöhnlich die Benutzerdaten anhand einer ID suchen - da würde die Breite der Tabelle ja keine Rolle spielen, oder?
Wie ihr wahrscheinlich gemerkt habt bin ich recht unentschlossen und leicht verwirrt. Vielleicht kann mir ja mal der eine oder Andere nen Hinweis geben? Vielleicht gibts ja auch Lösungen an die ich noch nicht gedacht habe?
nu aber erst mal jute nacht...