Thema anzeigen : Datenbank: 1 Tabelle für mehrere andere Tabellen
mix
huhu,
irgendwie steh ich grad aufm schlauch.. vielleicht kann mir jemand helfen.
Habe eine PC, eine Software und eine Angestellten-Tabelle. Zu den Einträgen in diesen Tabellen sollen mehrere Notizen erfasst werden können.
Nun habe ich gedacht, mache ich folgendes:
----------- ------------- --------
| pc | | pc_notiz | | notiz |
|--------- | |-----------| |-------|
| id | 1------------N | pc_id | 1---------------1 | id |
| etc. | | notiz_id | | etc. |
----------- ------------- ---------
geht das?
oder muss ich bei der pc_notiz<->notiz relation auch ne 1:n machen?
thx für allfällige antworten :)
ps: doofe whitespaces etc :/ hoffe ihr kommt trotzdem draus
blechschaden
Warum machst du den Umweg über eine neue Tabelle? Kannst doch einfach in der Notiz-Tabelle die ID des PC speichern und dann so alle Notizen mit der PC-ID suchen gehen...Oder ist das dann nicht mehr die 3. Normalform?
Dann hast du auch 1 - n Beziehung...
1 PC kann dann n Notizen haben... :cxn:
Gigabit
die notiztabelle enthält einen fremschlüssel auf den primärschlüssel der pc tabelle. dann brauchst du die pc_notiz tabelle nicht mehr.
@blechschaden: doch, ist die 3. normalform. gibt übrigens bis zu 7 normalformen :-)
mix
das ist mir klar dass das gehen würde.
aber es gibt ja noch 2 andere tabellen die ebenfalls für sich alleine notizen gebrauchen...
also nebst der pc tabelle gibts noch software und benutzer tabelle
daher der umweg über die zwischentabelle
canXun
Vielleicht steh ich grad auf dem Schlauch, aber wenn du eine Tabelle hast und dort eine Notiz machst, dessen ID als FK in Software/Arbeiter etc. verwendest - wo ist dann das Problem?
fmj
eine transformationstabelle brauchst du nur bei einer n:n beziehung.
n:n heisst in diesem fall:
- ein pc kann n notizen haben
- eine notiz kann zu n pc's gehören
ansonsten machst du es, wie cxn erläutert hat, über einen foreign key, wobei ich für den primary key der notiz eine eigene id verwenden würde (int(11) not null auto_increment). sowas in der art.
TABLE notizen
------------------
id (PRIMARY KEY)
pcid (FOREIGN KEY)
notiz (TEXT)
€dit:
Falls du für unterschiedliche tabellen notizen machen willst, kannst du die tabelle um ein feld erweitern: tableid (werte zb: 'pc', 'software', ...)
ich finde das eleganter als für jede table eine eigene notiz-table zu erstellen.
mix
eine transformationstabelle brauchst du nur bei einer n:n beziehung.
n:n heisst in diesem fall:
- ein pc kann n notizen haben
- eine notiz kann zu n pc's gehören
ich weiss schon ;)
ansonsten machst du es, wie cxn erläutert hat, über einen foreign key, wobei ich für den primary key der notiz eine eigene id verwenden würde (int(11) not null auto_increment). sowas in der art.
weiss ich auch.
mein problem ist lediglich, dass ich eben für mehrere tabellen notizen machen will..
Falls du für unterschiedliche tabellen notizen machen willst, kannst du die tabelle um ein feld erweitern: tableid (werte zb: 'pc', 'software', ...)
ich finde das eleganter als für jede table eine eigene notiz-table zu erstellen.
das habe ich mir auch schon überlegt.. ich denke es ist wirklich am besten wenn ich das so mache.
thx :)
vBulletin v3.0.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.