2010-01-06 6 views
13

Beispiel: Ich habe zwei Tabellen in meiner Datenbank classA und classB und eine Tabelle namens classA_classB genannt. Die letzte definierte zwei int-Felder mit Fremdschlüsseln, um eine Verbindung zwischen classA und classB herzustellen. Eine Klasse A kann also viele Klasse B haben, und viele Klassen können mit der gleichen Klasse B verknüpft sein. Einfaches Zeug, so weit.Alternative zu "Master" und "Slave" in Entity-Beziehung?

Das Problem ist, in meinem speziellen Fall, dass ich eine KlasseA habe, die mit einer anderen Klasse verbinden möchte. I.e. Ein Student verbindet sich mit seinen Freunden, die ebenfalls Studenten sind.

So analog zur Technik, die oben, ich habe: Student und student_student. student_student hat zwei Felder: student_id, student_id. Problem: Kann nicht zwei Felder mit demselben Namen haben!

Also muss ich sie wie nennen: master_student_id, slave_student_id.

Aber ich mag nicht die Begriffe "Master" und "Slave", weil diese Erinnerungen an eine schlechte Zeit in unserer Vergangenheit sind. Es mag albern klingen, aber ich denke, es ist nicht richtig, diese zu halten, zumindest aus einer moralischen Perspektive. Ich weiß, es ist nur ein Teil der modernen Informatik, aber ....

wie sonst könnte ich sie nennen?

Eltern und Kind vielleicht? Auch bin ich nicht sicher, ob es wirklich eine Entität "der Chef" gibt, während der andere "der Angestellte" ist ... Student und Student sind nicht hierarchisch. Aber dann, stellen wir uns vor, wir hatten zwei Klassen "Lehrer" und "Schüler". Das wäre eine klare Hierarchie. Allerdings brauche ich eine neutrale Lösung, da mein Framework diese 1: n-Beziehungen immer auf die gleiche Weise verknüpft.

+1

Mein armes Festplatte in der Sklaverei ... –

+5

Dom und Sub? :) oder, für eine sauberere Version, stehlen aus der Genetik: dominant und rezessiv – BobMcGee

+2

@BobMcGee: dominant und rezessiv hat eine ganz andere Bedeutung. Sie können Rezessive ohne ein dominantes Gen haben, Sie können keine Sklaven ohne einen Meister haben. – Jimmy

Antwort

6

Eltern und Kind oder Besitzer und Kind ist die allgemein akzeptierte Lösung.

3

Wie wäre es mit student_id und friend_id? Es gibt keine Regel, die besagt, dass Ihre Fremdschlüssel die gleichen Spaltennamen wie der Primärschlüssel haben müssen.

+0

einen Rahmen Stellen Sie sich vor, wo Sie schaffen Entitäten ein Web-Backend. Es generiert automatisch alles, und das Framework kann den Kontext nicht so detailliert kennen;) ... deshalb brauche ich eine "generische" Lösung. – openfrog

1

Welche Rollen haben die beiden Schüler in der Beziehung? Freunde? Mentoren? Bekanntschaften? Es gibt viele mögliche Rollen, die sie ausfüllen.

Sie können viele Rollen mit asymmetrischen Namen brainstormen.

Freund, friend_of

Mentor,

Referrer, referred_by

2

related_id oder associated_student_id wäre meine Präferenz mentored_by.

1

Hängt davon ab, ob die Beziehung (nennen wir es R) symmetrisch ist oder nicht. Wenn ja, dann ist Person1, Person2 in Ordnung seit R (Person1, Person2) = R (Person2, Person1). Wenn sie nicht symmetrisch sind, sollten die Namen wahrscheinlich eine Beziehung zwischen Arzt und Patient widerspiegeln. Verwenden Sie also ein Wort, um den Agenten zu bezeichnen, und einen, um den Patienten zu bezeichnen, z. Befreunde, Freund.

1

{Master-Follower} statt {Master-Slave}

7

der Industriestandard {Master-Follower}

finden Sie in den folgenden Referenzen zu treffen heute scheint:

[01]
www.mchotline.com/Reference/MN20B302.pdf

[02]
www.ab.com/linked/drives/drvappsw/files/AppSets_PF700S/AS_PF700S_VirtEncdr_PositMaster_ SL.pdf

[03]
www05.abb.com/global/scot/scot201.nsf/veritydisplay/bd987cd590c931fcc1257249003d8f4f/$file/factfile_master_follower_pd11_lowres.pdf

[04] www05.abb.com/ global/schotte/scot201.nsf/veritydisplay/a11e30d538ab1b49c2256def00493279/$ file/en_800stdprg_mfguide_a.pdf

[05] www.danfoss.com/BusinessAreas/DrivesSolutions/MUSEC/

[06] forums.ni. com/t5/Bewegung-C ontrol-and-Motor-Drives/Converting-a-Master-Folge-Typ-Cam-Schleifen-Maschine-zu-CNC/td-p/1469070

[07] www.burhansresearch.com/mrcwfdbk1.htm

[08] www.eurekamagazine.co.uk/article/28893/Master-follower-communication-in-ABB-industrial-drives.aspx

[09] www.lockmasters.com/index .asp? PageAction = VIEWPROD & ProdID = 49879

[10] www.perfusion.com/cgi-bin/forum/ forum_posts.asp? TID = 500

das macht auch mehr Sinn - keine Notwendigkeit, einen moralisch verwerflichen Begriff für eine hierarchische Computer/technologische Steueranordnung zu verwenden ... zum Beispiel würden wir Anschlüsse als "männlich" und "weiblich" bezeichnen ", nicht" männlich "und" Hure ".... beide Fälle" machen den Punkt "in einem etwas beschreibenden Sinne, jedoch ist es am besten, den Punkt mit nicht moralisch verwerflichen oder entzündlichen Begriffen

ausgezeichnete Frage, BTW !

1

scheint es 3 konkurrierende Industriealternativen zu Master/Slave zu geben. sie sind:

  • Master/Follower
  • Eltern-/Kind-
  • Primary/Secondary

Ich denke, primäre/sekundäre seltsam ist, weil wir mehrere sekundäre haben könnte. Ich habe das Gefühl, nach der sekundären wäre tertiär, quaternär, etc. Zu viel Schmerz.

Master/Follower hat immer noch vage Sklaverei/Feudalismus Konnotationen.

Das lässt uns nur mit Eltern/Kind ...aber ich mag das nicht wirklich, weil Child unfähig zu sein scheint, aber es gibt Fälle, in denen wir auf das Kind angewiesen sind, nicht auf das Elternteil ...

SO werde ich hier noch eine weitere Combo vorschlagen :

  • Primary/Alternate

Die Namensgebung sollte keine Sklaverei, Geschlecht und mehr Probleme vermeiden.

Verwandte Themen