0
我正在構建SQLite數據庫以保留我的房地產經紀人的房源。我能夠使用外鍵來爲每個代理人確定一個列表,但我想列出每個代理人記錄中的列表;從代理和列表之間的一對一關係轉變爲一對多關係。具有外鍵列表的SQLite字段
看這裏:http://www.sqlite.org/draft/foreignkeys.html,沒有提到一個字段是'外鍵列表'。我正在嘗試做什麼?
我認爲,作爲一種解決方法,我可能會創建一個包含關係本身的表,但這似乎不是一個非常乾淨的解決方案。我看了這個主題:SQLite foreign key examples,但我不確定我的元素與他們在那裏描述的多對多關係相似。
我也樂於就如何做得更好提出建議。我是否應該在實際列表中包含列表代理的名稱,並從那裏查詢?
CREATE TABLE listings
(
listing_id INTEGER PRIMARY KEY AUTOINCREMENT,
listing_address TEXT UNIQUE NOT NULL,
acq_date DATE
)
CREATE TABLE agent
(
agent_id INTEGER PRIMARY KEY AUTOINCREMENT,
agent_name TEXT NOT NULL,
agent_listings INTEGER,
FOREIGN KEY (agent_listings) REFERENCES listings (listing_id) NOT NULL
)
「鏈接表」是神奇的詞語,我現在更瞭解這些關係的實現(雖然維基百科似乎更喜歡['Junction Tables'](http://en.wikipedia.org/wiki/Junction_table))。我現在有點擔心把外鍵保留在這一邊可能會極大地使查詢/刪除同步等變得複雜。 不會試圖保留列表中的元標記直接是這種惡夢嗎? 謝謝你回到我身邊。 –
這是關係數據庫*工作*的方式;使用外鍵關係,您可以要求數據庫生成兩個表的笛卡爾乘積的子集。數據庫通常已經針對這種關係處理進行了優化,您將很快得到模型的掛鉤。 –
您可以查看[外鍵操作](http://sqlite.org/foreignkeys.html#fk_actions)來處理級聯(刪除一個表中的行觸發其他地方的刪除操作)。 –