nom de table dynamique dans requete

Invité
Invité n'ayant pas de compte PHPfrance

03 sept. 2009, 11:30

Je peux comprendre que personne n'aie envie de plonger dans ce bazar compliqué.
je reviens tout de même sur un point simple qui a été soulevé et que je n'ai pas tout à fait compris:

j'ai par exemple 3 types d'utilisateurs : admin, editor, reader

Ces utilisateurs ont de nombreux types de données en commun: nom, adresse, téléphone, fax, email...
Mais aussi quelques champs différents: expertise (éditor uniquement), raison sociale (reader uniquement), niveau (admin uniquement).

Faut-il mettre tous les users et tous ces champs dans une même table?
=> dans ce cas les champs qui ne concernent pas un user auront la valeur null

Ou alors mettre tous les champs communs dans la table users, et utiliser des tables de "mapping" pour les champs différents?
Ou a lors y a til une autre méthode qui permet de mieux assurer la qualité de la modélisation?

Merci pour vos réponses.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

03 sept. 2009, 13:28

J'ai survolé mais je crois que zeus a déjà répondu non ? Pas de tables avec des données redondantes.

Donc ce que je ferais, c'est faire comme il a dit :

- une table "utilisateurs", avec les données communes et un discriminant sur le type d'utilisateur
- 3 autres tables avec une clé étrangère vers "utilisateurs" et qui contiennent les données particulières à chaque type.