我在我的系統中有3種類型的用戶。每種類型都有不同的信息 我創建以下表:表中的繼承 - 結構問題
BaseUser(base_user_id, username, password, additional common data)
base_user_id是PK和身份
UserType1(user_id, data related to type1 only)
user_id是PK和FK到base_user_id
UserType2(user_id, data related to type2 only)
user_id是PK和FK to base_user_id
UserType3(user_id, data related to type3 only)
user_id是PK和FK base_user_id
現在我有從每種類型的用戶到倉庫表的關係。來自type1和type2的用戶應該只有warehouse_id,來自type3的用戶應該有warehouse_id和customer_id。
我想了解這個結構:
WarehouseOfUser(base_user_id,warehouse_id)
base_user_id是FK在BaseUser base_user_id
WarehouseOfTyp3User(base_user_id,warehouse_id, customer_id)
base_user_id是FK在BaseUser到base_user_id
的問題是,這樣的結構允許2我想要防止的事情: 1.從type2或type1添加到用戶的WarehouseOfTyp3User數據。 2.從type3添加到WarehouseOfUser用戶的數據。
什麼是這種情況下的最佳結構?
更新:我必須爲所有用戶類型使用相同的id範圍。我無法爲每個用戶創建單獨的表,因爲我需要爲每個表使用相同的user_id。
請參閱我的更新。我需要把所有的用戶類型ID放在同一個表中。 – Naor 2011-01-13 05:18:29