11

Je suis en train de lire à propos de l'héritage des tables de classe (CTI) et je trouve que je le préfère globalement. La question que je me pose est la suivante: y a-t-il un cas d'utilisation spécifique pour l'héritage de table unique (ITS) dans lequel vous l'utiliseriez plutôt que le CTI? Je lis http://rhnh.net/2010/07/02/3-reasons-why-you-should-not-use-single-table-inheritance et pour autant que je sache, c'est solide. Le cas d'utilisation des IST est une différence de comportement mais pas de données.Héritage de table unique ou héritage de table de classes?

Répondre

7

Je voudrais vous signaler un excellent article que j'ai trouvé qui explique clairement pourquoi et quand utiliser CTI. LINK

+0

merci pour cela – apneadiving

+1

En outre, un autre lien que le vôtre m'a conduit était http://peterhamilton.github.com/citier/ qui a beaucoup de liens de blog à ce sujet. Je vous remercie. – SpaceGhost

+0

@SpaceGhost Il n'y a pas de site GitHub Pages ici. –

0

Utilisez STI pour les différences de comportement comme vous l'avez dit. Un exemple que j'utiliserais serait:

Vous avez Achat, et vous avez PartialPurchase, la seule différence avec des données est que quand un Achat partiel est fini, il obtient une relation à un achat nouvellement créé.

Donc le comportement est différent, aussi, il y a des cas où je voudrais que PartialPurchase et Purchase apparaissent dans la même requête. Pour un agent commercial, ils veulent voir tous leurs achats et achats partiels en même temps, il est donc logique que ces données soient dans la même table. Sinon, tous les attributs sont les mêmes pour chaque modèle.

Dans ce cas, je voudrais utiliser STI sur CTI.

Bien que, si jamais les données commencent à différer beaucoup, je créerais probablement une autre table qui se rapporte à la table STI, et dans le cas de beaucoup de domaines différents, je penserais probablement à CTI.

Questions connexes