作爲回答這樣一個問題:Cardinality in PostgreSQL,基數是使用constraints enfforced。PostgreSQL的:如何實現最小基數?
基數規則定義關係的允許計數 - 一對多,多對多等。使用連接表和一對多使用FOREIGN KEY實現多對多。
但如何能實現一到one_or_many(一到-1 +)的關係。這是一樣的問:我怎樣才能執行最低基數PostgreSQL中?
的實際情況是其中一個需要存儲的地址說(或電話號碼),必須提供(但可以不止一個)由人(比如用戶或客戶)。
編輯:
上面提到的情況是一種特殊情況(具有基數的一個)的一個普遍問題的。一般問題是:如何強制任意數字的基數?
作爲answered by jug一個非空外鍵引用可以被用作一個替代解決方法,如果最小基數是一個。它還將提供一個附加功能來選擇許多默認設置。
但考慮隊Cricket及其球員之間關係的另一種情況。每支球隊都必須有11名球員最低資格作爲一個團隊。這裏最小基數是11(11)。
與之相似,一個當然和學生在學校,每個學生必須報名參加AT-至少5個課程,每個課程必須有10名學生最低之間的關係。
這兩個添加的示例顯示相同的質量。你如何從頭開始建立一個板球隊?一個學生如何參加他的第一門課程?少於5門課程的學生必須被允許存在,至少暫時存在。所以這是**不是一個使用約束的好地方。爲此目的使用查詢,函數或觸發器。 – 2012-02-14 00:03:32