Ich erstelle ein konzeptionelles Diagramm [ja, ich weiß, dass ich Attribute und Schlüssel eingefügt habe - aber dies ist nur für mich, um zu konsolidieren, was ich während des Lernens mache] - also behandeln Sie es bitte als konzeptionell mit dem Fokus auf Beziehungen und Tabellen und nicht wie man Diagramme erstellt;)
Meine geistige Hürde ist: Ich versuche herauszufinden, wie ich die Beziehungen zwischen Profil, Standort und Organisation am besten modellieren kann.
Zunächst einmal REGELN:
- Ein oder mehrere Profile können Mitglieder / Freunde einer oder mehrerer Organisationen sein . und umgekehrt.
- Ein oder mehrere Profile können Mitglieder / Freunde anderer Profile sein.
- Eine oder mehrere Organisationen können Mitglieder / Freunde anderer Organisationen sein.
Freund und Mitglied unterscheiden sich darin, dass Freunde schreibgeschützt sind und Mitglieder [je nach Stufe] vollen Zugriff haben, um Änderungen vorzunehmen.
Um die Sache noch weiter zu verkomplizieren, haben Standorte ihre eigenen "weiteren" verfeinerbaren Regeln, z. B. Eine Organisation besitzt zwei Standorte . Abhängig von den Standortregeln kann ein Mitglied [ Profil ] dieser Organisation an einem Standort vollen Zugriff haben, jedoch nur eingeschränkten Zugriff auf den Standort andere. [Entschuldigung: Sie müssen das Bild höchstwahrscheinlich in einem anderen Fenster öffnen, um eine bessere Anzeigegröße zu erzielen.]
Wie Sie sehen können, ist das Konzept von Profilen und Organisationen sehr ähnlich, ebenso wie das noch zu modellierende Konzept von Freunden und Mitgliedern [..., von dem ich mir vorstelle, dass es ähnlich wie die aktuellen Zwischentabellen mit der Einstellung Eigentümer / behandelt wird Admin / Mitglied / Freund usw. im Datensatz]. Deshalb denke ich an folgendes Konzept:
Siehe Option 2 im obigen Bild: Dadurch werden die aktuellen Tabellen " Organisation" und " Organisationsorte" und ihre Beziehungen entfernt und durch die Organisationstabelle "Option 2" als etwas rekursive Beziehung zu " Profil" ersetzt .
Ich nehme an, der Kern der Sache ist, ob ich zu programmatisch auf Polymorphismus bedacht bin oder nicht, zum Nachteil der Einfachheit und Flexibilität, was mich völlig verwirrt;)
Vielen Dank für Ihre Gedanken im Voraus, sehr geschätzt - M :).
Überarbeitetes Diagramm:
Als Antwort auf die Fragen von MDCCL:
- Ja, das Profil besteht aus einer Person und hat dieselbe Bedeutung - obwohl Ihre Begründung lautet - ich glaube, Sie haben Recht: Organisation und Person könnten Untertypen des Profils sein ; Daher besteht ein Profil entweder aus einer Person oder einer Organisation.
- Eine E-Mail-Adresse pro Profil.
- Ja. Wie oben sollte die Organisation mindestens eine E-Mail-Adresse haben.
- Richtig, eine feste Adresse.
- Es ist eine Möglichkeit, aber eine Seltenheit - obwohl nach dem, was ich lerne - sollte man dies für zukünftige Langlebigkeit usw. modellieren, und nur um zu bestätigen, dass ein Standort daher mehr als einer Person gehören könnte.
Die Lage ist definitiv die integrale Einheit zwischen den meisten anderen. Vielleicht werde ich kurz und bündig klären, was hier kurz und bündig getan werden kann, und Sie dann meine anderen Antworten durchlesen lassen, die hoffentlich zuerst nützliche Ergänzungen zu dieser Frage beinhalten [ siehe dann meine Antwort auf # 6 am Ende ];) Re: The Role Owner.
An **Organization** can be an Owner of zero or more **Locations**.
A Person can be an owner of zero of more Locations
[daher, wie Sie zuvor vermutet haben; Einfach ausgedrückt kann ein Profil Eigentümer von null oder mehr Standorten sein.Ja, ein Profil , das eines ist Besitzer eines Standorts übernimmt alle Rollenberechtigungen [super user]; Ein Profil , das ein Administrator ist, kann bestimmte Details des Standorts ändern , hilft / bearbeitet jedoch hauptsächlich die Details / Daten, die über alle anderen Profile bereitgestellt werden. Dies wird hauptsächlich von "Basismitgliedern" des Standorts / der Standorte bereitgestellt . Dadurch bleibt das Basismitglied übrig , das alle zugehörigen Standortdetails schreibgeschützt und Daten bereitstellen kann, die von einem Administrator / Eigentümer überprüft werden müssen . Darüber hinaus jedes Profil[Organisation / Person] ist ähnlich wie ein Basis - Mitglied ‚read-only‘ - lassen Sie sich Begriff ihnen einen Gast - aber nur , wenn die Lage so eingestellt ist öffentliches [und nicht Privat ], obwohl sie nicht Eingang wie ein liefern Basis - Mitglied kann .
- Richtig.
- Ihre Intuition ist unglaublich! Ja,
it is foreseen that a single Location could contain one to many LocationTypes
um die Sache noch komplizierter zu machen, wird erwartet, dass diese einzelnen Standorttypen unterschiedliche Berechtigungen für Profile haben, die dem übergeordneten Standort zugeordnet sind. Davon würden Berechtigungen vom Speicherort auf den Standorttyp / die Standorttypen heruntergefiltert [ähnlich wie Sicherheitsberechtigungen für Betriebssystemordner]. Ich stelle über Ihr Diagramm fest, dass Sie sich möglicherweise eher auf Typ als Beschreibung beziehen. - Ja.
- Siehe 12.
- Richtig, die Fähigkeit von Profil1 [Person oder Organisation], auf Standorte im Besitz von Profil2 [Person oder Organisation] zu reagieren [wenn sie Freunde / Mitglieder mit korrekten Berechtigungen sind], ist von größter Bedeutung.
- Sehr vernünftig - a) zustimmen. b) zustimmen. c) Ja, hmm? ... Vielleicht sollte es ähnlich sein wie Profil [Person] zu Profil [Person] = Freunde . Unabhängig von der Beschreibung, wäre es umkreisen Lage , als Organisation / s auf andere handelt Organisation Ort / s; Obwohl semantisch, bezweifle ich, dass eine Organisation als "Mitglied" der Organisation dieses Standorts unterwürfig erscheinen möchte, um dies zu tun, "egal wie gut die Sache ist".
[6]. Das ist für mich immer noch ein bisschen grau, aber hier ist es ... Zu meinem Nachteil ist die Ähnlichkeit zwischen den Beziehungen zwischen Mitgliedern und Freunden so eng, dass ich dachte, sie zu kombinieren. Im Nachhinein mit Ihrem Diagramm und Ihrer Interpretation scheint es richtig zu sein, sie getrennt zu halten [ Ich wollte die einzelne Beziehung über die Eigenschaft enum unterscheiden: Eigentümer / Administrator / Mitglied / Freund ]. Ihr Konzept als z. B.: Ein Standort, der einer Organisation gehört, hat null bis viele Profile [Person oder Organisation], obwohl es einen klaren Unterschied geben sollte, wie die Profile über ihre Beziehung [Mitglied oder Freund] auf den Standort wirken ] durch Rollen bezeichnet.So perhaps, the default relation between any Profile is Friend [much like Guest at Answer#7], enabling them to view the read-only Location data and msg/email the Location Owner/Admin - but not allow them to receive Location updates, news, etc., as a Member would.
quelle
Antworten:
Es ist großartig, dass Sie sich die Zeit nehmen, die Daten, mit denen Sie sich befassen, zu verstehen, zu klassifizieren und zu modellieren, da dies nach meiner persönlichen Erfahrung den gesamten Entwicklungsprozess einfacher und sehr flexibel für zukünftige Änderungen macht. Und ich bin mir ziemlich sicher, dass Sie sich dessen auch schon bewusst sind.
Vorläufiges Datenmodell und angenommene Geschäftsregeln
Ich habe eine Liste von Geschäftsregeln definiert, die ich angenommen habe, nachdem ich Ihre Frage gelesen und Ihre Diagramme genau untersucht habe, um mein Verständnis Ihrer Spezifikationen zu beschreiben. Nachdem ich eine solche Liste definiert hatte, leitete ich ein IDEF1X [1] -Datenmodell ab, das ich als PDF-Dokument auf eine externe Plattform (Dropbox) hochladen wollte, da dieses Datenmodell aufgrund seines Formats nicht gut in ein eingebettetes Bild passt. Diese beiden Instrumente werden als Referenz für einige wichtige Punkte nützlich sein, die ich unten im Abschnitt mit dem Titel "Zu lösende Aspekte" aufführe, um weiter voranzukommen .
Hier ist zunächst die…
Da dies nur vorläufig ist, betrachten Sie es als ein Mittel, das uns hilft, das gewünschte endgültige Datenmodell zu erreichen.
Angenommene Geschäftsregeln
Das vorläufige Datenmodell wurde aus einer Sammlung von Geschäftsregeln abgeleitet (abgeleitet aus Ihrer Frage), die ich wie folgt aufzählen werde:
Organisationen und Profile
Beachten Sie, dass dies
Profile
derzeit als Synonym für verstanden wirdPerson
.Organization
ist ein Freund von eins zu vielenProfiles
.Organization
ist ein Freund von eins zu vielenOrganizations
.Organization
ist Mitglied von Eins-zu-VieleOrganizations
.Profile
ist Mitglied von Eins-zu-VieleOrganizations
.Profile
ist ein Freund von eins zu vielenProfiles
.Profile
ist Mitglied von Eins-zu-VieleProfiles
.Standorte und Adressen
Organization
besitzt eins zu vieleLocations
.Location
wird nach Eins-zu-Viele klassifiziertLocationTypes
( zu einem bestimmten Zeitpunkt nur einer ).Location
kann eine Eins-zu-vieleAddresses
( einsPhysical
, eins fürShipping
, eine fürBilling
, oder eines , das alle genannten Zwecken dient, oder ein und verbindet zwei Zwecke und andere , die dazu dient nur einer von ihnen).Ein
Address
durch gehalten werden eins-zu-vieleProfiles
oder, anders ausgedrückt, eineProfile
hält eine Eins-zu-vieleAddresses
.Eine spezifische
Address
kann verwendet werden , indem eine Eins-zu-vieleProfiles
(wie dientPhysical
für einenProfile
, für die verwendetenBilling
durch einen anderen , etc.). AlsoAddress
funktioniert ein in ähnlicher Weise fürLocations
undProfiles
.Address
sein kann, zur gleichen Zeit , des TypsPhysical
,Shipping
undBilling
.Standorte und Rollen
Location
öffnet eins zu vieleRoles
.Role
kann in Eins-zu-Viele durchgeführt werdenLocations
.Profile
(nachdem sie als gesetzt worden istMember
einOrganization
) kann durchführt eine Eins-zu-vieleRoles
, in einer Eins-zu-vieleLocations
(aber nur eine bestimmtenRole
in jedemLocation
zu einem bestimmten Zeitpunkt, dh nie zwei oder mehrRoles
zur gleichen Zeit ).Aspekte, die gelöst werden müssen, um weiter voranzukommen
Um die Auflösung Ihres Datenmodells weiter voranzutreiben, finden Sie hier eine Liste relevanter Punkte, die uns bei der Erarbeitung dieses Ziels helfen werden, dieses Ziel zu erreichen:
Ich habe angenommen, dass der Begriff
Profile
in Ihrem Kontext eine ähnliche (oder dieselbe) Bedeutung hat wie der vonPerson
, aber er könnte etwas anders sein. Würden Sie auf diese Weise sagen, dass in Ihrem Szenario die EntitätenOrganization
undPerson
Subtypen von sindProfile
?Kann ein
Profile
(oderPerson
) eigene one-to-manyEmailAddresses
, oder eineProfile
(oderPerson
) auf feste genau einEmailAddress
?Möchten Sie die Möglichkeit bieten,
Organization
überTelephone
und kontaktiert zu werdenEmail
, oder möchten Sie einschränken, dass dies nur für einProfile
(oderPerson
) möglich ist?Ich gehe davon aus, dass ein
Location
zu fest ist genau einAddress
von der ArtPhysical
, ist das richtig?Ist es möglich , dass ein
Location
durch geteilt werden eins-zu-viele unterschiedlicheOrganizations
oder sonst eineLocation
von owned werden kann nur einOrganization
?Sie haben über Kommentare erklärt, dass die Tatsache, a
Member
und a zu sein,Friend
dieselbe ist. Wie Sie in meinem vorgeschlagenen vorläufigen Datenmodell sehen können, habe ich Ihre ursprünglichen Spezifikationen befolgt und alle möglichen Kombinationen von Mitgliedschaft und Freundschaft zwischenOrganization
undProfile
(oderPerson
) in verschiedenen Entitäten dargestellt, da ich denke, dass dies hilfreich sein kann, um das bestmögliche zu definieren Struktur für diesen Teil Ihres Szenarios. In diesem Sinne:an Organization is a Member of another Organization
andere Auswirkungen hat als die Aussagea Profile (or Person) is a Member of an Organization
bezüglich der aufgerufenen EntitätLocation
.Role
ofOwner
nur für einOrganization
und für mich das gültigeRoles
für einProfile
(oderPerson
) innerhalb einesLocation
areAdmin
und giltMember
. Was denkst du über all das? Da Sie in direktem Kontakt mit den für Ihre Situation geltenden Geschäftsregeln stehen, müssen Sie mir mitteilen, ob meine Annahmen korrekt sind.Kann ein
Profile
(oderPerson
)Roles
innerhalb desselben anders spielenLocation
? dh sie kann einePerson
sein, zugleich dieAdmin
und auch einMember
von der gleichenLocation
? Was sind die Regeln in dieser Hinsicht?Ich denke, dass das gleiche
Profile
(oderPerson
)Roles
in verschiedenen unterschiedlich spielen kannLocations
. Zum Beispiel: Ein bestimmtesProfile
(oderPerson
) ist der "Admin" inLocation
"1", und dasselbeProfile
(oderPerson
) ist gleichzeitig ein "Member
" inLocation
"2". Habe ich recht?Ist es möglich, dass eine bestimmte Person gleichzeitig
Location
eine andere hatLocationTypes
, oder ist eine PersonLocation
fest entschlossen, genau eine zu haltenLocationType
?Stellt das Attribut
Organization.Website
die Website-Adresse einer bestimmten Organisation dar, z. B. "dba.stackexchange.com"?Wenn
Profile
"1" (verstanden alsPerson
) eineMember
(oderFriend
) vonProfile
"2" ist, ist es dann möglich, dassProfile
"1" eineRole
in einemLocation
Besitz vonProfile
"2" ausführt ? Ich denke, dass solche Szenarien nur für die Beziehungen zwischen aOrganization
und a geltenMember
Person
. Was denken Sie?In ähnlicher Weise ist es möglich , dass
Organization
"1" , wenn "1" eineMember
(oderFriend
) vonOrganization
"2" istOrganization
, eineRole
in einerLocation
vonOrganization
"2" gehaltenen Ausführung ausführt ? Auch hier denke ich, dass diese Art von Szenarien nur für die Beziehungen zwischen aOrganization
und a gültigMember
Person
ist. Ist das richtig?In dieser Hinsicht - während ich diese Fragen schreibe - halte ich es für vernünftig zu sagen, dass es nur drei verschiedene Arten von Beziehungen gibt, die
Organizations
und betreffenPersons
, und wir können definieren:Organization
und aPerson
als "Membership
".Person
und einem anderen unterscheidet sichPerson
als "Friendhip
".Organization
und einem anderen Menschen zu beschreibenOrganization
.Ist es möglich
Organization
, dass einFriend
(oder einMember
) von einem zu vielen verschiedenenOrganizations
gleichzeitig ist? Oder es ist nur möglich, dass einOrganization
nur eine Beziehung zu ausschließlich einem anderen hatOrganization?
Aufeinanderfolgendes Datenmodell, das den ersten Fortschritt darstellt
In Anbetracht Ihrer Antworten und Beschlüsse zu den oben aufgeführten anstehenden Aspekten habe ich Folgendes erstellt:
Obwohl ich mich damit noch nicht ganz wohl fühle, drückt dieses neue Datenmodell die folgenden Geschäftsregeln aus:
Profile
ist entweder einOrganization
oder einPerson
. [2]Profile
kann der Opferfreund von Eins-zu-Viele seinFriendProfiles
, und AProfile
kann der akzeptierende Freund von Eins-zu-Viele seinFriendProfiles
. [3]Location
kann aus Eins-zu-Viele bestehenLocations
. [4]Antworten auf Ihre nachfolgenden spezifischen Kommentare
Ja, das ist ein guter Vergleich, obwohl ich es nicht als Trennung von Bedenken bezeichnen würde (was sicherlich ein grundlegendes Prinzip bei der Programmierung und dem Design von Anwendungen ist), da dieser Begriff üblicherweise die Phase der Anwendungsentwicklung betrifft und wir uns derzeit in der Stadium des Verstehens der Daten und des Entwurfs ihrer logischen Struktur.
Aus meiner persönlichen Erfahrung denke ich, dass diese Phase damit zu tun hat, die wesentlichen Dinge in ihren gesamten Kontext zu stellen, und damit, die Assoziationen zu sehen, die zwischen den verschiedenen Entitäten bestehen, die für das jeweilige interessierende Szenario relevant sind, und dann Darstellung dieser Dinge in einem Datenmodell. Im konkreten Fall , auf dem Sie kommentieren, die
Address
Unternehmen können verschiedene Arten von Verbindungen mit anderen Einheiten, eine mitProfile
und eine andere mitLocation
.Und ja, wenn sich etwas nicht richtig oder natürlich anfühlt , kann dies ein Zeichen dafür sein, dass man sich mehr anstrengen muss, um die relevanten Daten zu verstehen. Auf diese Weise ist die
Address
Entität eines der Dinge, die meiner Meinung nach mehr Aufmerksamkeit erfordern, da ich denke, dass die Beziehung zwischen aProfile
und a mittels der Entität gehandhabt werdenAddress
könnteLocation
(aufgrund der Tatsache, dass jedeLocation
mindestens eine physische haben mussAddress
), also wir könnten die entlassenProfileAddress
assoziative Einheit in dem neuesten Modell dargestellt, aber Sie sollten analizing diese Punkte weiter und lassen Sie mich Ihre Ideen.Ja, das ist eine sehr kluge Bemerkung von Ihnen, da IDEF1X die Verwendung von Rollennamen für die Bezeichnung von AUSLÄNDISCHEN SCHLÜSSELN empfiehlt, um die Bedeutung solcher Attribute entsprechend der Entität zu erfassen , in der sie verwendet werden. Es ist auch erwähnenswert, dass dies auch stark mit dem Konzept der Migration von Primärschlüsseln zusammenhängt . Tatsächlich geht die Verwendung von Rollennamen IDEF1X voraus, da sie ursprünglich von Dr. EF Codd in seinem wegweisenden Text von 1970 vorgestellt wurde. Auf diese Weise kann man deutlich die Genauigkeit erkennen, die der IDEF1X-Standard gegenüber dem relationalen Modell beibehält .
Abgesehen von den oben bereits beschriebenen Details über das
Address
Unternehmen bin ich mir nicht sicher, ob dieRoles
von einem bestimmten UnternehmenProfile
bestimmtenLocation
für einOrganization
oder ein Unternehmen äquivalent sindPerson
. Aus meiner Sicht mussPerson
zuerst ein mit einem verknüpft werdenOrganization
, und dannOrganization
würde dies dazu bestimmt , ein bestimmtesPerson
auszuführen , aber Sie kennen das Szenario besser, sodass diese Regeln möglicherweise unnötig sind. In diesem Zusammenhang werde mich über die Tatsache betonen , dass es sehr hilfreich wäre für mich die kontextuelle Beschreibung oder weiß Bedeutung , dass die künftigen Nutzer dieser Datenstruktur geben zu , undRole
Location
Organization
Profile
Location
Ich verstehe jedoch, dass dies als vertrauliche Information angesehen werden kann, daher wäre dies eine Einschränkung.Mit der aktuellen Struktur scheint es, als ob jeder (
Organization
oderPerson
) mit jedem (wiederOrganization
oderPerson
) verwandt sein kann und alles (Role
) überall (Location
) tun kann ( ), aber perharps ist dies genau das, was Sie und die Benutzer von dieser Datenbank erwarten , für die Sie natürlich genau definierte Einschränkungen angeben. Wenn dies der Fall ist, bieten wir fast eine endgültige Lösung. Da in dieser Situation natürlich Ihre Meinung entscheidend ist, sollten Sie diese Ideen auch analysieren und mir dann Ihre Schlussfolgerungen mitteilen, damit wir die letzten Schritte unternehmen können.Machbarer zweiter Vorschuss
Leider hat die Kommunikation vor ein paar Wochen aufgehört, ich denke wegen der Arbeitsverpflichtungen, die Sie erfüllen müssen, was völlig vernünftig ist. Ich wäre viel zufriedener gewesen, wenn wir ein stabileres und robusteres Modell entwickelt hätten, aber aufgrund unserer früheren Interaktionen kann ich davon ausgehen, dass ich Sie in die richtige Richtung weisen konnte.
Zusätzlich zu dem, was bereits in diesem Frage- und Antwortprozess vorgestellt wurde, halte ich es für hilfreich für andere Suchende mit einem ähnlichen Problem, eine neue Weiterentwicklung der vorherigen Datenmodelle bereitzustellen. Also habe ich die…
Organisationen und Profile Vorläufiges Datenmodell - Zweiter Fortschritt
Wie in einem solchen Datenmodell zu sehen ist, habe ich die Viele-zu-Viele- Beziehung, die ich in den vorhergehenden Modellen zwischen
Profile
und dargestellt habeAddress
, entfernt, da ein gegebenesProfile
bereits über sein Eigentum mit Eins-zu-Viele in Beziehung steht .Addresses
Locations
Eine weitere Änderung, die in diesem neuen Fortschritt veranschaulicht wird, ist die Tatsache, dass sie jetzt die Möglichkeit beinhaltet, dass eine gegebene
Location
Person eins zu viele gehören kannProfiles
. Folglich habe ich die geändertLocation
PRIMARY KEY (durch AbweisungLocationOwnerProfileId
Attribut) und dann ein assoziatives Entität (hinzugefügt many-to-many ) , das bezieht sichProfile
mitLocation
.Anmerkungen
1. IDEF1X ist eine sehr empfehlenswerte Datenmodellierungstechnik, dieim Dezember 1993 vom US-amerikanischen National Institute of Standards and Technology ( NIST )als Standard definiert wurde.
2. Dies ist ein Auftreten eines (Super-) Typ-Subtyp-Clusters . Falls Sie interessiert sind, finden Sie hier eine Antwort, in der ich mich eingehender mit dieser Art von Beziehungen befasse.
3. Ein Beispiel für eine hierarchische Beziehung von vielen zu vielen , die der Struktur sehr ähnlich ist, die die endgültige Lösung für die „Problem der Teileexplosion“ . Eine solche Lösung wurde natürlich von Dr. Edgar Frank Codd in seinem 1970 enorm einflussreichen Artikel „Ein relationales Datenmodell für große gemeinsam genutzte Datenbanken“ vorgestellt .
4. Als solches ist dies eine Instanz von a Eins-zu-Viele (oder Viele-zu-Eins) hierarchischen Beziehung .
quelle
Ich denke, Sie versuchen, Konzepte aus der Objektmodellierung und Konzepte aus der Datenmodellierung auf eine Weise zu kombinieren, die Ihnen nicht hilft, Ihr eigenes Verständnis des Problems zu klären. Ich hoffe, ich kann die Unordnung ein wenig beseitigen, ohne zu viel zu streifen.
Das relationale Modell als solches unterstützt keine Vererbung, egal wie Polymorphismus. Dies bedeutet, dass bei der Modellierung einer realen Situation, die durch Vererbung und Polymorphismus in einem Objektmodell leicht zu handhaben ist, ein eher spezialisiertes Entwurfsmuster verwendet werden muss. Mehr dazu später.
Als das ER-Modell zum ersten Mal entwickelt wurde, sollte es eine implementierungsunabhängige Alternative zur relationalen Modellierung sein. Anfangs hatte es auch nichts Vergleichbares. In den 1980er oder 1990er Jahren wurde das Modell jedoch erweitert, um einige der Ausdrucksmöglichkeiten zu bieten, die Sie bei der Vererbung erhalten. Dies war als "erweitertes ER-Modell" bekannt, aber für alle praktischen Zwecke enthält das heutige ER-Modell EER-Funktionen.
Eine EER-Funktion trägt den Namen "Generalisierung / Spezialisierung". Sie können dieses Konzept im Web suchen und nachlesen. Gen-spec bietet fast die gleiche Ausdrucksfähigkeit wie Klassen und Unterklassen in einem Objektmodell. Gen-spec befasst sich jedoch nicht mit den Problemen beim Entwurf relationaler Tabellen für eine Gen-spec-Situation. Dazu später mehr.
Bei der ER-Modellierung sind an einer Beziehung immer dieselben Entitäten beteiligt. Daher ist die Freundschaftsbeziehung zwischen einer Organisation und einem Profil nicht dasselbe wie die Freundschaftsbeziehung zwischen einem Profil und einem anderen Profil. Die beiden Beziehungen benötigen unterschiedliche Namen. Sie werden sich nur in Knoten binden, wenn Sie diese Regel nicht befolgen.
Entweder das, oder Sie müssen eine verallgemeinerte Entität erstellen, deren Spezialisierungen Organisationen, Profile und möglicherweise Standorte sind. Ich verstehe Ihren Fall nicht gut genug, um Ihnen dabei zu helfen.
Im weiteren Verlauf stelle ich fest, dass Sie Ihr relationales Modell und Ihr ER-Modell zu einem einzigen Modell kombinieren. Die meisten erfahrenen Datenbankarchitekten tun dies. Ich rate Ihnen jedoch, die beiden Modelle getrennt zu halten (obwohl sie miteinander in Einklang stehen), bis Sie Ihre Kenntnisse erworben haben.
Wie entwirft man schließlich relationale Tabellen, die eine Gen-Spec-Situation darstellen? Versuchen Sie, diese beiden Entwurfsmuster "Klassentabellenvererbung" und "Einzeltabellenvererbung" nachzuschlagen. Es gibt zwei Tags für diese in Stackoverflow. Es gibt auch einige ziemlich gute Präsentationen der Muster im Web. Ich mag besonders die Behandlung von Martin Fowler. Er scheint zu wissen, wie Objektmodellierer denken. Hoffe das hilft.
quelle