Autor |
Beitrag |
Jakob Schöttl
      
Beiträge: 929
Erhaltene Danke: 1
Delphi 7 Professional
|
Verfasst: Di 02.03.10 20:07
Hallo!
Ich hab eine Datenbank mit 2 Tabellen für Kurse: Kinderkurs und Erwachsenenkurs.
Jeder Kurs (egal aus welcher Tabelle) hat eine "Art", also einen Fremdschlüssel der auf eine Zeile der Tabelle Kursart verweist.
Jetzt ist die Frage: Muss ich auch zwei (identische) Tabellen Kursart erstellen - für jeden Kurs eine -, oder soll ich eine gemeinsame nehmen?
Gegen die gemeinsame spricht, dass Kinderkurse und Erwachsenenkurse nicht auf die gleiche Kursart verweisen dürfen. Daher müssten eigentlich die Kursarten strikt getrennt werden.
Dafür würde halt sprechen, dass ich in der Struktur der Tabellen keine Redundanz habe.
Allerdings soll die Datenbank soweit wie möglich normalisiert sein!
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von Jakob Schöttl am Di 02.03.10 20:37, insgesamt 1-mal bearbeitet
|
|
Niko S.
      
Beiträge: 566
Erhaltene Danke: 10
Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
|
Verfasst: Di 02.03.10 20:23
Wenn beide Tabellen auf die gleiche Kursart verweisen dürfen, warum müssten die Tabellen dann getrennt sein?
Das versteh ich grad nicht so ganz.
Weil dann hättest du ja 2 Tabellen mit dem Selben hinweis und dem selben verweis (Art) Schlüssel.
|
|
Jakob Schöttl 
      
Beiträge: 929
Erhaltene Danke: 1
Delphi 7 Professional
|
Verfasst: Di 02.03.10 20:36
Niko S. hat folgendes geschrieben : | Wenn beide Tabellen auf die gleiche Kursart verweisen dürfen, warum müssten die Tabellen dann getrennt sein? |
oh, ich hatte einen Fehler drin, sie dürfen nicht auf die gleichen Kursarten verweisen.
|
|
Niko S.
      
Beiträge: 566
Erhaltene Danke: 10
Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
|
Verfasst: Di 02.03.10 20:54
Okay, nun weiß ich was du meinst.
Dann wäre sicherlich eine einfache Prüfung von nöten.
Du testest vorher einfach, ob bereits aus der anderen Tabelle ein verweis auf die Kursart besteht oô.
Dann wäre das Problem doch gelöst, und du müsstest nicht unbedingt 2 Tabellen erstellen.
|
|
Jakob Schöttl 
      
Beiträge: 929
Erhaltene Danke: 1
Delphi 7 Professional
|
Verfasst: Di 02.03.10 21:05
Niko S. hat folgendes geschrieben : | Du testest vorher einfach, ob bereits aus der anderen Tabelle ein verweis auf die Kursart besteht oô. |
oh sorry, ich hab noch vergessen hinzuzufügen, dass:
bestimmte Datensätze der Kursart nur für Kinderkurse gehen dürfen, und andere nur für Erwachsenenkurse. Also so, als wären es zwei Tabellen, in denen es keine Redundanzen gibt (bis eben auf die Struktur). ... das war für mich natürlich klar ^^
ich könnte natürlich in der Kursart-Tabelle festlegen, ob der Datensatz für Kinder- oder Erwachsenenkurs is, aber das könnte dann "versehentlich" geändert werden.
Ich glaub das beste ist wirklich, wenn ich zwei Tabellen mache, auch wenn dann die Struktur redundant ist...
Oder was meint ihr?
Danke trotzdem Niko
|
|
Niko S.
      
Beiträge: 566
Erhaltene Danke: 10
Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
|
Verfasst: Di 02.03.10 21:50
Ja gut wenn man dass dann "versehentlich" ändern kann, dann wäre es aus diesem Grund sinvoller, es in 2 Tabellen aufzuspalten. Oder man unterbindet dieses "versehentlich" ändern, indem das niemand, außer du, darf ;D
Aber sonst würde ich persönlich das auch nicht anders machen, bzw wüsste grad keinen besseren Weg.
(Musste mich auch schon ein paar mal um Tables kümmern und son DataModeler wie du ihn verwendest, ist eig ne feine Sache  )
|
|
Jakob Schöttl 
      
Beiträge: 929
Erhaltene Danke: 1
Delphi 7 Professional
|
Verfasst: Di 02.03.10 22:14
ok
Dann fühl ich mich jetzt bestätigt
danke!
|
|
DonManfred
      
Beiträge: 148
Erhaltene Danke: 2
Windows 7
Delphi XE3 Pro + HTML5Builder
|
Verfasst: Mi 03.03.10 08:06
Du kannst beides in einer Tabelle speichern. In der Liste der Kursarten machst du Dir ein Flag für erwachsene/kinder und lässt bei Kinderkursen auch nur solche Kurse zu; bei erwachsenen ebenso...
In der Tabelle für Kurse und Teilnehmer brauchst du jeweils das flag (0/1 für erwachsen oder nicht). Also zwei Tabellen insg., keine redundanz.
_________________ Gruss Manfred
|
|
Jakob Schöttl 
      
Beiträge: 929
Erhaltene Danke: 1
Delphi 7 Professional
|
Verfasst: Mi 03.03.10 18:47
DonManfred hat folgendes geschrieben : | Du kannst beides in einer Tabelle speichern. In der Liste der Kursarten machst du Dir ein Flag für erwachsene/kinder und lässt bei Kinderkursen auch nur solche Kurse zu; bei erwachsenen ebenso... |
aber dann müsste ich Trigger programmieren, und es könnte jemand das Flag in Kursarten ändern; das soll ja nicht sein. Das kommt mir eher wie ein workaround vor.
und beide Kurse in einer Tabelle lässt sich sowieso nicht machen, weil diese Tabellen unterschiedliche Struktur haben.
|
|