這是一個由兩部分組成的問題。附圖是PostgreSQL數據庫表格設計的圖表。有四張桌子。表Main
與表Submain
有一對多的關係。表Submain
與表Subsub
有一對多的關係。所有四個表的主鍵都是串行非空(所以它們自動遞增)。每個表都有多個屬性,這裏沒有顯示。如何確定用作另一個表的外鍵的自動生成的主鍵
問題1.有多個用戶訪問該應用程序和數據庫。當用戶訪問使用此數據庫的應用程序時,他們的一些信息將存儲在表Main
中。隨後的信息(由用戶提供,其他結果基於用戶的輸入)將存儲在表格Submain
和Subsub
中。我的想法如下:
- 用戶通過表單提交信息。
- A
MainId
主鍵將自動生成,部分用戶信息將被放置在表Main
中。 - 根據用戶的輸入(
Main
中的項目),將在表Submain
中插入一條記錄。如何確定用戶的主鍵MainId
是否可以插入到Submain.MainId [FK]
中以記錄新記錄? - 還將在
Subsub
中插入一條記錄,該信息將基於表Submain
中的信息。同樣,如何確定Submain.Submain [PK]
,以便我可以將它用作Subsub.Submain [FK]
的外鍵?
問題2:Main
和Other
(我遺漏了關聯表)之間存在多對多關係。但是,要將記錄插入表Other
,則需要從Subsub
獲取信息。將有Subsub
和Other
之間的一對一映射。我是否需要繪製出一對一的關係,或者可以根據表中的一個複雜的SELECT/JOIN
陳述填充表Other
,直至表Subsub
?這可能是一個糟糕的問題,但我認爲我需要繪製一對一的關係,並將外鍵SubsubId [FK]
插入Other
而不是嘗試複雜的SQL語句。
一般原則是讓它* *一個每個問題的問題。另外,你的第二個問題似乎不符合你的ER圖。我建議你將這部分分成單獨的問題。並且請始終提供您的Postgres版本。 –