2010-11-14 4 views
1

Je souhaite effectuer le suivi de plusieurs propriétés relatives à une ligne dans une table de rubriques, mais je ne suis pas sûr de créer une colonne dans la table de rubriques ou de créer une table de propriétés et d'insérer chaque propriété dans sa propre rangée là. (Ou peut-être une troisième option, je ne pense pas à?)Colonnes ou lignes pour stocker les propriétés associées

Par exemple:

properties 
---------------- 
prop_id 
type (representing boolean,range,text, or a date) 
title 

Les deux façons que je peux penser de faire référence à cela dans la table principale sont les suivants:

topic 
---------------- 
topic_id 
title 
prop_id1 
prop_id2 
prop_id3 
.... 

ou faire une table séparée pour les données avec une propriété sur chaque ligne:

properties_data 
---------------- 
topic_id 
prop_id 
bool 
range_min 
range_max 
text 
date 

Il me semble que la première méthode serait m Mais je m'attends à avoir ~ 30-40 propriétés qui pourraient ou ne pourraient pas être utilisées pour chaque sujet, donc je ne sais pas lequel utiliser.

Existe-t-il une méthode standard pour accomplir cette tâche, avec différents types de données qui se rapportent toutes (et en théorie seraient recherchées en même temps) à la ligne du tableau principal?

Répondre

2

Si vous voulez avoir un nombre variable de propriétés attachées à chaque sujet, alors vous devriez aller avec l'option que vous avez identifiée plus haut. Cela vous donnera une flexibilité maximale, et si vous ajoutez les index appropriés à votre base de données, le hit de performance devrait être assez négligeable.

+0

Bon point sur les index, je vais voir ce que je peux faire :) –

Questions connexes