首頁 > 資料庫 > mysql教程 > 清單可以有效地儲存在關係資料庫列中嗎?

清單可以有效地儲存在關係資料庫列中嗎?

Mary-Kate Olsen
發布: 2024-12-26 04:50:09
原創
558 人瀏覽過

Can Lists Be Stored Efficiently in a Relational Database Column?

在資料庫列中儲存清單:可以完成嗎?

當面臨在資料庫中儲存複雜物件(如清單)的任務時關係資料庫,問題出現了:這可以在遵守資料庫規範化原則的情況下完成嗎?

在提供的例如,感興趣的對象 FOO 包含水果清單。要求是將此清單保留在資料庫列中。然而,傳統的關聯式資料庫模式不鼓勵在單列中儲存清單等非結構化資料。

關聯式資料庫方法

解決方案在於稱為聯結的非規範化設計桌。在這種方法中,我們建立一個單獨的表 FOOFruits,它儲存 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)
);
登入後複製

透過使用此方法,我們確保資料完整性並避免不一致同時保持 FOO 和 Fruits 表的引用完整性。

例如,將水果「Apple」加入 FOO 物件中ID=5:

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

此方法允許高效查詢和檢索與每個 FOO 物件關聯的水果清單。

以上是清單可以有效地儲存在關係資料庫列中嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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