2014-10-27 73 views
0

爲我的情況創建SQL數據庫表格的最佳方式是什麼?選項1還是選項2?使用數組值創建SQL表格

TMyRecord = record 
id : integer; 
name : string; 
price : Array [0.100] of double; 

如果我想在SQL數據庫中創建表,

選項1: - 創建一個表,並把所有price條目IDName

CREATE TABLE My_Record 
(
ID int, 
Name varchar(255), 
price float, 
); 

選項2: - 用兩個表,並彼此鏈接?

CREATE TABLE My_Record 
(
ID int, 
Name varchar(255), 
price float, 
PRIMARY KEY (P_Id) 
); 
CREATE TABLE My_Record_ArrayData 
(
FOREIGN KEY (ID) REFERENCES My_Record(ID) 
price float, 
); 

在此先感謝。

+0

你的第二個選擇與第一個沒什麼區別,只是更無用的絨毛。在這兩種情況下,您都有尾隨逗號以及其他*看似*語法錯誤。 – vol7ron 2014-10-27 03:47:33

+0

您沒有提及您將使用的DBMS。例如在PostgreSQL中,你可以創建完全這樣的表。 – TLama 2014-10-27 07:04:00

+0

如果對同一產品有多種價格的可能性,則在其他情況下選擇2,選項1適合您。 – mg30rg 2014-10-30 10:29:09

回答

1

選項2更好,因爲您不重複每個價格值的名稱列。

而且你只需要在My_Record存儲ID,名稱中的第二個選項,所有價格值可以去My_Record_ArrayData

另一種選擇是使用XML數據類型去存儲所有價格值,那麼你只會有一個包含該名稱所有值的表格。

+0

XML數據類型?我希望你沒有想到XML文件的原始存儲(在這種過度增長的結構中,如何按價值進行搜索)。即使您在考慮某種(由於缺少數據庫管理系統的問題)存儲時,數據庫管理系統存儲所有未解析的值時,它看起來對我來說是一種矯枉過正。 – TLama 2014-10-27 07:13:19