2010-02-23 8 views
3

Je n'arrive pas à trouver d'informations dans la documentation ou via Google à ce sujet, mais s'il y a quelque chose, un pointeur serait génial.Données de base: héritage, STI ou autre?

Dans mon application, j'ai un Thing comme classe de données principale. J'ai l'intention d'avoir que Thing contiennent de nombreux Item s qui a un tas de champs en elle, comme order et created_date et ainsi de suite. Cependant, il existe une variété de types Item, chacun avec son propre ensemble de champs. Idéalement, je voudrais créer plusieurs sous-classes de Item, de sorte que je puisse accéder à tous les éléments ensemble dans un seul tableau ou quelque chose.

Dans Rails, j'utiliserais STI pour cela. Les données de base supportent-elles un comportement similaire?

Merci!

Répondre

5

Vous pouvez créer une entité abstraite d'élément et y ajouter chacun de vos éléments uniques. Gardez la relation dans l'abstrait afin que votre Chose puisse les voir tous.

Soyez averti, cependant, que sous le capot, tous ces enfants seront effectivement mis dans une seule table large, donc vous aurez besoin de tester les performances.

+0

Brillant, merci. Quant à la performance, je ne suis pas trop inquiet, il ne devrait pas y avoir des quantités massives de données dans l'application. Je vais séparer les choses si cela devient un problème. –

Questions connexes