2010-01-14 7 views

Répondre

2

Si vous avez besoin différentes valeurs à stocker ensemble, dans un seul champ, alors vous serez probablement mieux loti les stocker sous forme d'une chaîne séparée délimiteur des valeurs:

 
+----------------------------------+ 
|    PRODUCTS    | 
+----------+-----------------------+ 
| Product | Colors    | 
+----------+-----------------------+ 
| Notebook | blue,red,green,orange | 
+----------+-----------------------+ 

C'est généralement pas ce que tu veux cependant. D'une manière générale, la solution de l'idée est de créer des relations entre les tables. Par exemple:

 
+---------------+ 
| PRODUCT | 
+----+----------+ 
| ID | Product | 
+----+----------+ 
| 1 | Notebook | 
+---------------+ 

+---------------+ 
| COLORS  | 
+----+----------+ 
| ID | Color | 
+----+----------+ 
| 1 | Blue  | 
+---------------+ 
| 2 | Red  | 
+---------------+ 
| 3 | Green | 
+---------------+ 

+---------------------+ 
| PRODUCTCOLORS | 
+-----------+---------+ 
| ProductID | ColorID | 
+-----------+---------+ 
| 1   | 1  | Notebook, Blue 
+-----------+---------+ 
| 1   | 3  | Notebook, Green 
+-----------+---------+ 
+0

Vous avez répondu avec un grand détail. Vous avez donné une partie de votre temps précieux pour me répondre. Un très grand merci pour ça. –

1

oui, dans une conception relationnelle typique, vous auriez 1: N (1-to-many) entre 1 table et une autre. chaque ligne de la première table représente une collection, chaque ligne de la deuxième table est un élément d'une collection et fait référence à la première table.

une liste séparée par des virgules, sérialisation, ou une chaîne codée URL est aussi une bonne solution que les autres réponses indiquent ...

0

Non, mais quelle langue côté serveur utilisez-vous?

Si vous utilisez PHP, vous pouvez utiliser

$serializedArray = serialize($myArray); 

Et puis insérez cette valeur dans la db. Pour le récupérer, utilisez unserialize();

0

C'est à peu près la même réponse que ci-dessus (avec une chaîne délimitée), mais vous pouvez également enregistrer le texte dans cette colonne en XML. Selon la base de données que vous utilisez, cela peut être facile ou fastidieux.

Comme indiqué ci-dessus, est-ce que vous perdez évidemment n'importe quel aspect de pouvoir gérer l'intégrité des données de votre couche DB (facilement).

Questions connexes