Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: Datenbanken ::  Designfrage  
Gehen Sie zu Seite 1, 2, 3, 4  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
y-vonne
Unregistrierter




Beitrag y-vonne Unregistrierter 08:35:02 28.03.2012   Titel:   Designfrage            Zitieren

Hallo zusammen.

In meiner Datenbanken habe ich zwei Tabellen. Nehmen wir mal ein Beispiel.

Student und Studienfach. Hier habe ich nun eine n zu n Beziehung. Und habe dazu eine Zwischentabelle: StudentStudienfach. Jetzt würde ich mir gerne noch in einer Spalte merken wär der beste Student im jeweiligen Studienfach war.

Jetzt habe ich zwei Möglichkeiten: Entweder habe ich in der Zwischentabelle eine Spalte mit bool bester true/false. Oder ich merke mir in Studienfach eine Spalte, bester Student, den Schlüssel von Student.

Welches ist die schönere / bessere Lösung?

In beiden gibt es einen Nachteil. Mit der bool Variante kann man mehrere Studenten in einem Studienfach auf true setzen. Was nicht vorkommen darf.

In der anderen Lösung kann ich aber einen Studenten als besten setzten der gar nicht dieses Studienfach besucht.

(Bitte nicht als Lösung sagen ich kann mir auch die Noten merken und daraus dann den besten ermitteln, es ist hier nur ein Beispiel. Sagen wir einfach Walddorf Uni es gibt keine Noten und nur einen besten :-) )
x++
Unregistrierter




Beitrag x++ Unregistrierter 09:43:28 28.03.2012   Titel:              Zitieren

Nimm die 3. Lösung:

Neue Tabelle StudentStudienfachBester. In der verknüpfst du einfach einen Datensatz aus StudentStudienfach mit deiner boolschen Spalte. Das Studienfach darf nur einmal in der Tabelle StudentStudienfachBester vorkommen.
y-vonne
Unregistrierter




Beitrag y-vonne Unregistrierter 10:26:19 28.03.2012   Titel:              Zitieren

Ok. Habs aber nur halbwegs verstanden. Für was brauch ich dann noch die boolsche Spalte?
y-vonne
Unregistrierter




Beitrag y-vonne Unregistrierter 10:17:41 29.03.2012   Titel:              Zitieren

Also doch keine so gute Lösung.

Irgendjemand noch einen verständlichen Vorschlag?
LOLAlter
Unregistrierter




Beitrag LOLAlter Unregistrierter 14:36:29 29.03.2012   Titel:              Zitieren

Dritte Tabelle

Studienfachbester mit Referenz auf Studienfach und Referenz auf Student.
Warum sollte man die Info an den JOIN Table hängen?

LOL Alter! Wenn ich sowas lese, lolt es mich regelrecht weg. Da roflt es mir frei die Fußnägel weg.
y-vonne
Unregistrierter




Beitrag y-vonne Unregistrierter 15:15:51 29.03.2012   Titel:              Zitieren

Also nur raus mit den Vorschlägen LOLAlter.
LOLAlter
Unregistrierter




Beitrag LOLAlter Unregistrierter 15:52:04 29.03.2012   Titel:              Zitieren

Das oben war mein Vorschlag.

Mach eine dritte Tabelle Studiengangsbester. Dort eine Referenz auf Studiengang und eine Referenz auf Student, also den besten des jeweiligen Studiengangs.
hustbaer
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.10.2006
Beiträge: 16045
Beitrag hustbaer Mitglied 22:53:25 29.03.2012   Titel:              Zitieren

Code:
1
2
3
4
5
6
7
8
9
CREATE TABLE das_kann_doch_nicht_so_schwer_zu_verstehen_sein
(
    INT Studienfach_ID NOT NULL PRIMARY KEY,
    INT Student_ID NOT NULL,
 
    CONSTRAINT der_muss_das_auch_studieren
        FOREIGN KEY(Studienfach_ID, Student_ID)
        REFERENCES StudentStudienfach(Studienfach_ID, Student_ID)
)

_________________
"Let there be Licht..." http://lichttools.sourceforge.net/
Sehr cooles ASCII Spiel (leider nicht von mir): ASCII-Scramble - http://www.roskakori.at/ascii/


Zuletzt bearbeitet von hustbaer am 22:54:11 29.03.2012, insgesamt 1-mal bearbeitet
x++
Unregistrierter




Beitrag x++ Unregistrierter 10:43:36 30.03.2012   Titel:              Zitieren

Hm ja genau so hatte ich das auch gemeint. Ziemlich doof wenn man erst nach 2 Tagen wieder in den Thread schaut :)
y-vonne
Unregistrierter




Beitrag y-vonne Unregistrierter 14:06:57 30.03.2012   Titel:              Zitieren

Bitte was LOLAlter. Komm mal zurück zur deutschen Sprache.

Ich dachte bei einer dritten Tabelle lolt es dich regelrecht weg. Oder auf was hast du das bezogen.

@hustbear. Wenn ich das mit einem Constraint machen könnte, dann könnte ich ja genauso in Studienfach hinterlegen wer der beste ist. Dazu bräuchte ich ja keine 3 Tabelle.

Da ich aber das EntityFramwork von .Net verwende kann ich keine Constraints anlegen.
c++.de :: Datenbanken ::  Designfrage  
Gehen Sie zu Seite 1, 2, 3, 4  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.