Je dois concevoir un diagramme d'entité-relation (ERD) pour un contexte commercial impliquant la délimitation de artistes musicaux, comme je détaillerai ci-dessous.
An artiste a un nom, et doit être soit A groupeo A Performateur solo (mais pas les deux).
A groupe est composé d'un ou de plusieurs Solo interprètes et a un nombre de membres (qui devrait être calculé à partir de Le nombre de Solo interprètes Rendre le groupe).
A Solo Performer peut être un membre de nombreux groupes ou de no groupe et peut jouer un ou plusieurs instruments.
Comment construire un ER pour représenter un tel scénario? Je suis confondu avec la partie "ou".
la réponse par MDCCL est fascinante, éducative et correcte (bien qu'au-dessus de ma qualité de paiement).
En revanche, j'ai ré-interprété la question et je suis retourné aux bases de la solution la plus simple possible. Peut-être que je trompe et ne réponds pas vraiment à la question ... mais ici va de toute façon.
J'étais confus lors de la lecture et de la relecture de la question. Lorsque vous voyez le terme "artiste", j'ai continué à penser à des personnes individuelles. Mais non, il est entendu au sens de "l'étiquetage artistique de la marque", comme un album d'enregistrement de musique a un titre et un "artiste" si l'artiste soit un individu comme Johnny Cash ou un groupe comme le remède .
Prenons comme exemple l'artiste maintenant connu sous le nom de Prince . Il a publié des albums comme:
Les quatre de ces quatre seraient des cas d'artiste. En particulier, il y avait deux femmes, Wendy Melvoin et Lisa Coleman, dans sa bande la révolution mais pas in nouvelle génération d'électricité, après avoir quitté leur carrière Sous la marque Wendy & Lisa .
Donc, nous aurions encore un autre exemple d'artiste avec Wendy & Lisa tandis que les individus melvoin et Coleman seraient chacun interprètes mais pas "artiste". Ces femmes individuelles seraient assignées comme interprètes à deux "artistes" ((1) Prince et la révolution, (2) Wendy & Lisa).
Le diagramme suivant est une tentative maladroite de montrer cet exemple de données de manière compacte. Nous montrons les deux femmes soulignées (interprètes) appartenant à deux groupes différents (artistes). Et nous montrons l'homme en italique, le prince, appartenant à quatre groupes (artistes) mais pas appartenant au dernier groupe (artiste).
Si cela décrit le domaine commercial, je proposerais la conception de la table suivante (et ERD).
Fondamentalement, nous avons une paire de relations nombreuses à plusieurs:
En ce qui concerne "groupe" et "soloperformer":
Si une partie de la logique commerciale doit faire la distinction entre les articles de l'artiste qui sont Solo VS Group, nous pouvons dans SQL exécuter des requêtes pour ces lignes d'artiste qui n'ont qu'une table d'adhésion à une rangée par rapport à celles qui ont plusieurs. Mais pratiquement parlant, il est probablement logique de dénormaliser ces informations par:
Si l'objectif de la question était de faire respecter cette distinction en solo par rapport au groupe dans la structure de la base de données (ou ERD), j'ai échoué. Mais de toute façon, j'espère que cette réponse peut s'avérer intéressante et utile.
La réponse du MDCCL est un superbe résumé des concepts de la superclasse/de la sous-classe ou de la généralisation/spécialisation, comme décrit au niveau de la RERE.
Cette réponse est destinée à signaler trois modèles de conception ou techniques qui valent la peine d'être connectés lorsque le moment est venu de tourner l'EERD en une conception relationnelle, basée sur des tables définies avec des colonnes définies.
Voici les trois:
Les deux premières sont des alternatives, l'une est bonne pour des cas simples dans lesquels presque toutes les données concernent la superclasse. Le second est plus compliqué, mais peut mieux fonctionner lorsque beaucoup de données concernent plusieurs sous-classes. Le mot "héritage" est utilisé pour indiquer que la conception fournit une partie du même pouvoir expressif que l'héritage fournirait dans un modèle d'objet.
La clé primaire partagée est une technique par laquelle les entrées des tableaux de sous-classe peuvent acquérir une identité en "héritant" l'identité de l'entrée correspondante dans la table Superclass.
Donc, il y a trois étiquettes avec ces noms. L'onglet Info sous chaque balise fournit une description et de nombreuses questions sont regroupées sous les balises.
Il existe également de nombreux sites Web qui présentent ces techniques. Je recommande ceux de Martin Fowler. J'aime la façon dont il le présente. Voici quelques pages Web: