复杂需求的数据库设计

时间:2013-11-13 10:26:41

标签: asp.net sql

我有一个票证类型的表格,(如新的,更新的,升级的),并且它们有子类型(例如new有大约5个子类型,例如服务器,访问等)。

现在每个子类型都有不同的信息要存储..(子类型服务器需要开始日期,结束日期,服务器名称和访问权限需要客户ID,访问类型,确认附件等)。

基本上,每个子类型都需要diff no.of info ...所以我想问一下,我是否应该为每个子类型创建差异表...对于Server i我创建一个包含4列的表并且为了访问我创建了一个桌子与7 col。

部署后可能需要较低的新子类型,但仍有可能,因此将创建一个新表...

这样做是正确的,还是其他任何方法?

1 个答案:

答案 0 :(得分:0)

是否应为每个子类型创建一个新表取决于继承的性质。以下经验法则适用:

  

强制性; AND:1表用于超类+所有子类

     

强制性; OR:每个子类1个表

     

OPTIONAL; AND:1表为超类,1表为所有子类

     

OPTIONAL; OR:1个超类表,每个子类1个表

MANDATORY意味着:超类的每个成员都必须是子类的成员。

AND表示:超类的成员可以是几个子类型

计算示例:假设您有一个包含1个超类和3个子类的模型。

四种类型的遗产中每种类型的表格总数分别为:1,3,2,4