我對設(shè)計(jì)新的數(shù)據(jù)庫表有疑問。是否可以像 ID 一樣存儲數(shù)據(jù)?假設(shè)我有一張桌子:ID type1 client_id2 item_id3 price4 date像這樣制作表格會出什么問題:ID transaction foreign_id data1 222 1 142 222 2 253 222 3 $2554 222 4 5/17/20205 528 1 146 528 2 1877 528 3 $148 528 4 5/16/2020 ETC..我要制作一個更大的數(shù)據(jù)庫,其中可能超過 20 列。我在想這是否是一個(更好的)解決方案。這個結(jié)構(gòu)有什么可能出錯的地方嗎?PS:Postgre 數(shù)據(jù)庫
1 回答

RISEBY
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個贊
您正在描述實(shí)體-屬性-值模型。
我實(shí)際上不會推薦這個,因?yàn)樗泻芏嘞葳?,例如?/p>
不能強(qiáng)制屬性名稱的完整性(如果有人創(chuàng)建了一個名為 的新屬性
id_client
,而該client_id
屬性已經(jīng)存在怎么辦?)所有值都存儲在單個列中,因此您不能為每個屬性使用正確的 sql 數(shù)據(jù)類型(如果有人設(shè)置日期怎么辦
2020-00-00
?)不可能強(qiáng)制執(zhí)行強(qiáng)制屬性的概念,或任何其他類型的約束
另一方面,通過創(chuàng)建具有相關(guān)列數(shù)、具有適當(dāng)數(shù)據(jù)類型和not null
約束的表,可以妥善管理上述所有要點(diǎn)。20 列并不多——在使用關(guān)系表時,替代解決方案是可能的,例如繼承。
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)
0/150
提交
取消