Mysql
如何在 MySQL 中設計 Person 表?
我有兩種人類型:使用者和客戶。使用者可以登錄面板,但客戶端不能登錄面板。我目前的數據庫:(但這種設計對我不利。我需要將這些表連接到 Persons 表。)
我的數據庫:
您可以看到這些表儲存相同的數據,例如:名字、姓氏……但不同之處在於客戶沒有密碼。
如何將這些表連接到 Persons 表。
- 使用者可以使用電子郵件和密碼登錄。
- 客戶無法登錄,但有聯繫電子郵件。
如果您用數據庫圖回答它,我會很高興。
簡單地說,只使用一個帶有列 isclient 的表,它決定您是否可以登錄。
或者,如果您有更多的客戶列,則列 clientid,如果使用者不是客戶,則該列為 Null,否則使用帶有 clientmoreinformation 的表的唯一 ID。
通常沒有多餘的列或表。
一般來說,我所看到的是詢問客戶是否可以成為使用者,以及使用者是否可以成為客戶。如果這兩個列表不重疊,那麼將它們視為兩個不同的實體是完全可以的。這與為銷售人員準備一張桌子和為銷售庫存準備一張不同的桌子沒什麼不同。僅僅因為電腦桌具有身高和體重屬性,並不能使它成為像我這樣的使用者。
如果列表之間有很多重疊,例如如果您正在查看俱樂部的普通會員和高級會員,那麼在一個表格中添加幾個額外的列來顯示他們的地位。
如果您需要引用同時具有使用者和客戶端的事件,則可以使用帶有外鍵的連接表將它們連結在一起。