2010-01-14 72 views

回答

2

如果你需要不同的值存儲在一起,在一個單一的領域,那麼你很可能會成爲最好關閉它們存儲作爲值的分隔符分隔字符串:

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

這通常是你想要什麼。一般來說,創意解決方案是在表格之間建立關係。例如:

 
+---------------+ 
| 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

你已經回覆了一個很好的細節。你給了我寶貴的一部分時間來回復我。非常感謝。 – 2010-01-14 07:07:56

1

是,在一個典型的關係型設計,你將有一個1:N(1對多)1臺和彼此之間的關係。第一個表中的每一行代表一個集合,第二個表中的每一行都是集合中的一個元素,並引用第一個表。

一個逗號分隔的列表,序列化,或URL編碼的字符串也是一個不錯的解決方案,其他的答案指出...

0

沒有,但你使用的是什麼服務器端語言?

如果使用PHP,您可以使用

$serializedArray = serialize($myArray); 

然後將該值插入數據庫。爲了讓它恢復使用,請使用unserialize();

0

這幾乎與上面的答案相同(使用分隔字符串),但您也可以將該文本保存爲XML。根據您使用的數據庫,這可能很簡單或乏味。

正如上面指出的那樣,您顯然已經失去了能夠從數據庫層(輕鬆地)管理數據完整性的任何方面。

相關問題