2016-09-22 30 views
0

我有以下表格:數據庫關係一對一基於類型

  • 用戶:ID,TYPEID ..
  • 類型:ID,姓名。基於類型的

用戶有1到3個值。例如,用戶1是典型的B,而類型B總是有3個值。類型A總是有2個值。難道我創造不同的價值桌

  • ValuesA:身份證,閩值,最高值,用戶ID
  • ValuesB:ID,值1,值2,值3,用戶ID ...

並使用UserId作爲外鍵,並根據類型決定我應該使用哪個表。或者,我是否創建了一個包含所有值字段的值表,並在某些行中保留空字段,並將ValueId添加到用戶表中?或者這是一個更好的方法來做到這一點?

回答

0

更好的辦法是到normalize您的價值行。

Value 
----- 
User ID 
Type ID 
Sequence 
Value 

該表的主鍵是(用戶ID,類型ID,序列)。 Sequence列是使主鍵唯一的原因。對於A型,序列將爲1和2.對於B型,序列將爲1,2和3.

此設計允許您靈活地爲給定用戶設置零值,5值或150值並鍵入。