[RESOLU] MCD - problème d'organisation des données

Eléphant du PHP | 64 Messages

24 janv. 2014, 11:35

Bonjour à tous,

Je suis en train de travailler sur une base de données pour mon site sur les séries/films/personnages... Je procède pas à pas en commençant par la recherche des données qu'il me faut, la manière dont il faut les organiser dans les table en travaillant sur le papier à mon modèle conceptuel de données. J'avance assez vite car je sais ce que je veux et ce qu'il me faut. Toutefois je me heurte à un soucis liée à mes maigres connaissance des bases de données.

Mon problème concerne les personnalités, leurs métiers et les liens familiaux qu'ils pourraient avoir avec d'autres personnalités (exemple, acteurs de père en fils). le modèle des liens familiaux est aussi utilisé pour les personnages et leurs familles.

Voila mes tables:
Personnalité:
  • code_personnalité => Clé primaire
  • nom
  • prénom
  • genre
  • code_pays => clé étrangère
  • date de naissance
  • code_ville => clé étrangère
Profession
  • code_profession => Clé primaire
  • nom
Famille
  • code_famille => Clé primaire
  • nom
Personnage:
  • code_personnageé => Clé primaire
  • nom
  • prénom
  • genre
  • code_pays => clé étrangère
  • date de naissance
  • code_ville => clé étrangère

Mon soucis c'est que je ne sais pas comment lier mes tables "Personnalité" à "Profession" car une personnalité peut être à la fois chanteur, acteur, réalisateur. De même pour lier "personnage" à "famille" car un personnage est le père d'un autre personnage, mais aussi le frère d'un autre...
Mon idée de liens familiaux entre les personnages m'est venu en faisant des recherches sur les personnages de Game Of Thrones car pour m'y retrouvé je me suis amusées avec un logiciel de généaligie. Ca pourrait être intéressant pour d'autres personnes. :D

J'ai pensé à créer une table "Père", "Acteur", "Réalisateur" mais je ne sais pas si c'est une bonne solution...

Est-ce faisable?
Avez-vous une idée?


Je vous remercie d'avance pour avoir lu mon message.

Bonne journée. :wink:

Eléphant du PHP | 56 Messages

24 janv. 2014, 14:14

Faire des tables "père", "acteur", ect n'est pas franchement réalisable. Tu peux.. Mais t'imagine le bordel après ?! Le nombre de tables que t'auras et pour t'y retrouver..

D'après ce que j'ai compris, pourquoi ne pas jouer sur les cardinalités ? 0,n afin d'avoir plusieurs professions pour une personnalité ?

si tu ne connais pas très bien les cardinalités, vas te renseigner ! Je pense que cela le règlera.

Eléphant du PHP | 64 Messages

24 janv. 2014, 22:48

Oui j'ai aussi pensé que ce ne serait pas gérable avec des tables comme père, acteur...

J'ai aussi pensé aux cardinalités avec les 0,1 et n. Je vais essayer de relire tout ça à tête reposée.

Mais j'ai un gros doute par rapport à la possibilité d'identification du côté père et du côté enfant.

Car si je fais une table famille

Famille
  • code_famille => clé primaire
  • nom_famille
  • code_personalité => clé étrangère
Je ne pense pas que ma table soit correcte pour avoir par exemple: "Alex père de Nicolas" Car dans ce cas il faudrait que j'ai deux fois la clé étrangère code_personnalité et comme savoir qui est l'ascendant et le descendant.
Et dans le cas des frères est sœurs c'est pareille car il peut y avoir des fratries de plus de 2 enfants.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 janv. 2014, 23:36

salut,


un truc du genre ? (cf pj).

c'est la même chose pour les personnages (attention au redondance) et une relation 0,n - 0,n entre acteur et personnage.

sinon peux être une relation de type arbre à voir.

@+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Il en faut peu pour être heureux ......

Eléphant du PHP | 64 Messages

26 janv. 2014, 12:13

Bonjour moogli ça ressemble tout à fait à ça!

Je ne pensais pas qu'une relation tel que parenté pouvait exister comment ça s'appel?

Je ne sais pas ce que c'est une relation type arbre, je vais rechercher.

Merci beaucoup pour ton image je me l'imprime pour exemple.

Edit: après recherches j'ai trouvé c'est des relation "réflexives" je suis en train de lire la documentation qui va avec.


Encore merci pour ton aide! :D