我即将对一个应用程序进行重新设计,在这个应用程序中,查询数据库特别烦人。我打算尽可能多地重新设计数据库,但是数据形状不能改变太多。
数据库有一个主表和10个其他表,每个表代表一个记录类型。主表拥有记录类型共有的所有数据。记录ID、DateLogged等,总共约有30-40列.其他表都是完全不同的,因为每种记录类型与另一种非常不同。他们每个都有20到30列。
主表有一个名为type的列,它是int。但是,它没有引用类型编号所指的记录类型。你只要看看程序就知道了。主表必须与每种类型的表连接,以便进行搜索。我增加了一个图像来代表我想要描述的东西。

有没有更好的方法来建立这些关系?我想放弃与ADO.NET一起使用的详细存储过程,转而使用EF。我需要想出一种更好的方法来关联数据,这样将来的人们就不需要通过搜索存储过程寻找线索来解决这些关系了。
发布于 2013-06-05 20:30:04
添加类型表。
TypeID PK
Type string将Main中的Type更改为TypeID,使其成为Type表TypeID的外键。
从这里到哪里取决于每种类型的区别。如果唯一的区别是不同类型之间的字段有所不同,并且只有几个类型,那么您可以使用一个类型表,向其中添加一个TypeID,并为每个记录中的每个类型设置每个字段(但有一项谅解,即某些字段对于每个记录都是空的)。
如果类型非常不同,则可以保留当前的设计,但可以将TypeID添加到每个Type表中。
https://softwareengineering.stackexchange.com/questions/200612
复制相似问题