Mailinglisten-Archive |
Hallo Bobby > From: Bobby Eichholz [mailto:bob_(at)_mental-defact.de] [...] > ich will gerade meine erste größere DB erstellen. > Dazu brauche ich ein paar infos in Bezug auf die Beziehungen zwischen > einzelnen Tabellen. > - Tabelle User: UserID,Name,E-Mail > - Tabelle Equipment: PC,Monitor,Drucker > - Tabelle Zeitpunkt: Datum > Damit will ich jetzt erfassen, welcher User zu welcher Zeit welches > Equipmant hat. Datum in extra Tabelle um Platz zu sparen > (1Jahr+10000User=>365xDatum+10000Verknüpfungen sonst 10000xDatum) denke > braucht. > > Brauche ich jetzt in der Tabelle Equipment eine Spalte UserID und Datum, > oder kann man das auch anders verknüpfen? Welche Spalten muß ich > als Index, > Unique und oder Primärschlüssel deklarieren? > Ich weiß nicht, ob Du noch wissen willst, wer ein Equipment in der Vergangenheit gehabt hat. In dem Fall würde ich die Tabelle Datum durch eine Besitztabelle mit folgenden Felder ersetzen. UserID EquipmentID AbDatum BisDatum Solange BisDatum noch NULL ist (d.h. ohne Wert) befindet sich dann das jeweilige Equipment in Besitz des Users. Das Handling gestaltet sich dann natürlich etwas komplizierter. Z.B. muß bei einem Besitzübergang das BisDatum in die Tabelle für den alten User eingetragen werden und dann ein neuer Eintrag für den neuen User vorgenommen werden. Dafür ist der Platzverbrauch wesentlich geringer. Gruss, Michael Donning --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive