2016-03-18 69 views
-1

我只是好奇,爲什麼我們需要在數據庫中使用一對一,多對多或多對多的方式使用一對一,多對一/多對多,多對多的目的

+0

在MS SQL中,您無法建立1:1關係:http://stackoverflow.com/questions/10292355/how-do-i-create-a-real-one-to-one-relationship-in-sql服務器也不允許建立一個外鍵約束來執行多對多的關係:http://stackoverflow.com/questions/18435065/foreign-key-to-non-primary-key然而,使用非常簡單:它可以幫助我們理解數據庫中所有表之間的關係:它們是否連接在一起,如果是這樣,怎麼辦? – Ralph

+1

你的問題不清楚。你的意思是,爲什麼我們打擾提供基數?或者你的意思是,我們爲什麼要將這些特殊的基數與其他基因區分開來?或者,爲什麼數據庫中的表格?或者,對於每種基數,我們何時使用它?或者是什麼?或者是什麼? – philipxy

回答

0

這完全是關於需求,在編程中我們需要維護數據庫中的數據。在許多情況下,我們需要創建相關表格,這些表格與關係相關。例如,如果您構建應用程序以維護用戶聯繫人,則需要爲用戶和聯繫人設計一張表。在這裏你將涉及兩個表

0

如果你的意思是,我們爲什麼要區分關係的基數,那麼答案是沒有必要。重要的是,我們確定&描述足夠的關係來描述每個應用程序的情況。

實體參與關係的基數只是關係的一個屬性。例如,如果表EmployeeManager持有「經理M管理員工E」的行,那麼填寫表格無論每個員工只有一位經理還是每位經理一位員工,你只要看看這個世界,並把那個從這個語句模板生成一個真實語句的行放到表格中。例如,解釋一個表的行爲也是這樣:行都是那些使語句模板成爲關於世界的真實聲明的行。你不需要知道紅衣主教來查詢。例如,如果表DepartmentManager保存「管理者M管理部門D」的行,則EmployeeManager NATURAL JOIN DepartmentManager保持「管理者M管理員工E和管理者M管理部門D」的行,而不管每個員工只有一個經理或每個經理的員工,或每個部門的經理或每個經理的部門。

但是好處是,如果我們告訴DBMS,那麼它可以排除無效狀態,如果我們告訴用戶,那麼它可以幫助他們理解關係語句模板的含義或DBMS爲什麼拒絕假定的錯誤更新。