Hallo Chrisi
Also eine Aufteilung ist glaube ich absolut notwendig, für eine Tabelle wäre es zuviel. Hier das Schema mit den neuen primarys:
-> user = UID,username,passwort,email u.s.w...
soweit logisch ...
-> interests = UID,1,2,3,4,5 u.w.s... numeric 1-5
1 = Kino, Skala von 1-5 wobei 1 = schlecht 5 = sehr gut
Die Splatennamen habe ich hier bewusst auf Zahlen begrenzt um die
DB und Scripte dann übertragbar auf andere Projekte zu machen.
Z.B. könnte Spalte 1 bei einem anderen Projekt für "Reiten"
stehen anstatt für "Kino".
Hier solltest Du umbauen, da eine m:n-Beziehung vorliegt:
Jeder "user" kann mehrere "interests" (kann sich lohnen, wenn der Zinssatz hoch genug ist *g*) haben. Jedem "interest" können mehrere "user" zugeordnet sein. Typischerweise löst Du so etwas über drei Tabellen auf, von denen Du eine bereits hast:
Tabelle user (Benutzerdaten)
Tabelle interests (verschiedene Interessensgebiete)
- iid (Identifikation eines Interessengebietes)
- interest (Interessensgebiet)
Tabelle user_interests (oder so ähnlich): Zuordnungstabelle
- uiid (Identifikation, Primärschlüssel, kann weggelassen werden)
- uid (Fremdschlüssel aus user, identifiziert den "user")
- iid (Fremdschlüssel aus interests, identifiziert "interest")
- grade (oder so ähnlich, der Wert auf der Skala)
Es reicht aus, als Primärschlüssel dieser Tabelle die Kombination der Spalten uid, iid zu nehmen, da diese Kombination eindeutig sein muss. Auf diesen Spalten sollte sowieso ein kombinierter eindeutiger Index liegen, damit Fehler vermieden werden: Einer Person kann nicht zweimal das gleiche Interessensgebiet zugeordnet werden.
-> character = UID,look,size,weight,figure u.s.w... alles ENUM()
Mögliche Werte die unter ENUM() festgelegt werden
z.B. look = ENUM('egal','geht so','gut','sehr gut')
Auch hier empfehle ich Dir aus Gründen der Flexibilität eine andere Tabellenstruktur: Wenn Dir eine weitere Eigenschaft einfällt, so musst Du Deine Tabellenstruktur durch Einfügen einer weiteren Spalte einfügen. Viel besser ist es, wenn Du eine weitere Zeile in einer bereits vorhandenen Tabelle anfügen kannst. Geht das? Ja, es geht:
Jede Person kann mehrere verschiedene Wunscheigenschaften angeben.
Jede Wunscheigenschaft kann von mehreren Personen angegeben werden.
Du hast schon wieder eine n:m-Beziehung, die Du analog zur vorhin behandelten Tabelle auflösen kannst.
Tabelle user (bereits vorhanden)
Tabelle characters
- cid (Identifikation einer Eigenschaft)
- character (Eigenschaft)
(Ich würde übrigens eher den Namen attributes bevorzugen.)
Tabelle user_charakters
- uid
- cid
- value (oder was auch immer)
-> pictures = id,UID,picname,status
Userpics (mehr als eines) soweit logisch, hier habe ich aber
die id(primary) gelassen um schnell auf einen Datensatz zugreifen
zu können, zb. zum löschen.
Wie wäre es mit pid, da es ja ein "picture" identifiziert. Das ist meiner Meinung nach aussagekräftiger als id.
Das ganze ist eine Art Datingdatenbank :)
Ach nee ...
Da wäre nie jemand darauf gekommen. *g*
Freundliche Grüße
Vinzenz