首頁 > 資料庫 > mysql教程 > 我應該規範化還是使用連接表來將清單儲存在資料庫列中?

我應該規範化還是使用連接表來將清單儲存在資料庫列中?

Linda Hamilton
發布: 2024-12-26 15:03:10
原創
888 人瀏覽過

Should I Normalize or Use a Junction Table to Store a List in a Database Column?

在資料庫列中儲存清單:標準化與連接表

當需要在資料庫中儲存物件清單時列,例如與 FOO物件關聯的水果列表,規範化和連接表之間的選擇

標準化禁止將列表儲存在單一列中。這種方法為列表項目建立一個單獨的表,保留資料完整性並減少冗餘。

但是,就我們的水果清單而言,這種方法並不理想。水果 ID 是固定的並儲存在另一個表格中。標準化需要在水果表中為清單中的每個水果建立一個新行,這將導致數據膨脹和複雜性。

連接表 另一方面,提供了替代解決方案。它在 FOO 物件和水果清單之間建立了多對多關係。聯結表中的每一行代表特定 FOO 物件和特定水果之間的關聯。

以下是如何實現聯結表的範例:

CREATE TABLE FOO (
  id int primary key not null,
  int1 int,
  int2 int,
  int3 int
)

CREATE TABLE Fruits (
  id int primary key not null,
  name varchar(30)
)

CREATE TABLE FOOFruits (
  FruitID int references Fruits (ID),
  FooID int references FOO(id),
  constraint pk_FooFruits primary key (FruitID, FooID)
)
登入後複製

新增Apple使用聯結表將水果加入ID=5 的FOO 物件的清單:

INSERT FOOFruits(FooID, FruitID)
SELECT 5, ID FROM Fruits WHERE name = 'Apple'
登入後複製

這種方法消除了標準化的需要,並提供了管理FOO 物件和水果清單之間關係的有效方法。

以上是我應該規範化還是使用連接表來將清單儲存在資料庫列中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板