6. Conseils divers ( ... et généreux pour aller plus loin)▲
6.1. Généralisation (héritage) (ramifier les espèces)▲
Dans le schéma ci-dessous, les entités "Personne physique" (des êtres humains) et "Personne morale" (des sociétés, associations, collectivités, organisations…) sont généralisées dans l'entité "Propriétaire".
On dit aussi que l'entité "Propriétaire" est une entité parente et que les entités "Personne morale" et "Personne physique" sont des entités enfants, car il y a une notion d'héritage...
Exemple :
Par exemple une entité "Etre humain" est une généralisation pour toute entité faisant appel à une personne, comme les entités "Etudiant", "Client", "Artiste", "Souscripteur", "Patient", "Assujetti"...
On les appelle aussi "entités-génériques".
Certains ateliers de modélisation représentant les données sous la forme d'entités « encapsulés ».
Exemple :
6.2. Personnalisation (ou les sous-modèles)▲
Une personnalisation est un regroupement dans une super entité de plusieurs entités munies d'une ou de plusieurs associations.
Par exemple, une compagnie d'aviation proposant des vols peut modéliser le planning des pilotes par le schéma suivant :
6.3. Regroupement d'entités (un truc à connaître pour éviter la redondance)▲
Comme toute technique, le schéma entité-association possède des limites et des contraintes que seuls l'expérience et le bon sens peuvent permettre d'éliminer.
Il arrive parfois que certaines entités apparaissent comme redondantes. Dans ce cas, et pour gagner de la place en matière de stockage de l'information, il convient de regrouper ces entités dans une seule et même table du SGBDR en ajoutant un champ supplémentaire à cette table de manière à permettre de distinguer les entités du schéma théorique.
Par exemple si l'on désire modéliser une gestion de compact-disc on peut créer une entité "Compositeur" et une entité "Interprète". Mais on constate qu'une grande majorité de compositeurs sont leurs propres interprètes, ce qui signifie qu'une même personne peut se trouver présente dans les deux entités. Pour résoudre ce problème il suffit de construire une seule table pour les deux entités (par exemple une table "MUSICIEN") et d'y ajouter un champ permettant de distinguer le type de "musicien" : compositeur ou interprète ou les deux.