我需要在關係數據庫中爲具有列Name
,LastName
等的人員使用SQL創建表。用於存儲不同類型的「Person」的SQL數據庫設計
我會有三種不同的人:賣方,買方和客戶。
每個人都有其他信息/屬性。
我是否需要爲每種不同類型的人員創建一個表格,或者是否可以爲所有三種類型使用單個表格?
如果我使用單個表格,如果某種類型的「Person」(比如Seller)具有與另一個Person類型不同的屬性會怎樣?
我需要在關係數據庫中爲具有列Name
,LastName
等的人員使用SQL創建表。用於存儲不同類型的「Person」的SQL數據庫設計
我會有三種不同的人:賣方,買方和客戶。
每個人都有其他信息/屬性。
我是否需要爲每種不同類型的人員創建一個表格,或者是否可以爲所有三種類型使用單個表格?
如果我使用單個表格,如果某種類型的「Person」(比如Seller)具有與另一個Person類型不同的屬性會怎樣?
您可以創建1個或2個表。當然,您可以爲每個用戶角色創建3個表格。這取決於你想達到的目標。你的問題常見的解決辦法是:創建兩個表,一個是用戶,一個面向自己的角色爲MySQL(例如:
Create table `person_role` (
id int not null,
roleName varchar(255) not null,
PRIMARY KEY(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Create table `person`(
id int not null.
name varchar(255) not null,
lastName varchar(255) not null,
role int not null,
PRIMARY KEY(`id`),
CONSTRAINT FOREIGN KEY(`role`) REFERENCES person_role(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
賣家可以成爲買家還是客戶?如果可以的話,將它們全部放在同一張表中,這樣就不會有相同數據的單獨副本。
我想創建一個表的人,有PERSONID作爲主鍵,將包含所有公共屬性類型(賣方,買方,客戶)
然後我會創建PersonTypes,一個小的參考表中,將聲明代碼爲不同的類型。
然後,對於每個類型的我會創建一個單獨的表,參照Person表和 PersonType表,包括所有的獨特屬性。