sql-server – SQL Server中的“继承”表

前端之家收集整理的这篇文章主要介绍了sql-server – SQL Server中的“继承”表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在重新调整我们的联络管理数据库,我想听取人们的意见,解决一些具有共同属性的联系人类型的问题.

基本上我们有6种联系方式,包括Person,Company和Position @ Company.

在当前结构中,所有这些都有一个地址,但是在地址表中,您必须存储它们的类型才能加入联系人.

在一段时间后,加入联系人类型的一致要求令人沮丧.

今天我偶然发现一个讨论“表继承”的帖子(http://www.sqlteam.com/article/implementing-table-inheritance-in-sql-server).

基本上你有一个父表和一些子表(在这种情况下是每个联系人类型).从那里你强制执行完整性,以便一个子表必须具有一个主等效的类型被定义.

我看到它的方式,通过这种方法,我将不再需要将类型存储在地址中,因为所有类型的id是唯一的.

我只是想知道有人对这种方法有任何感觉,无论是一个好的方法还是替代方法

我正在使用sql Server 05& 08应该有所作为.

谢谢

埃德

解决方法

我设计了一个数据库,就像你提供的链接一样.案例是存储许多不同技术报告的数据.报告类型的数量未定义,可能会增长到大约40种不同的类型.

我创建了一个主报表,具有自动增量主键.该表包含所有常见的信息,如客户,测试现场,设备,日期等.

那么每个报表类型都有一个表,其中包含与该报告类型相关的特殊信息.该表具有与主机相同的主键,并引用主机.

我将其分为不同表格(1通常是no-no)的想法是为了避免使用大量列的单个表格,因为您不断添加列可能难以维护.

我的表继承的设计给了我分段的数据和可扩展性,而不会难以维护.我唯一需要做的是写一个特殊的保存方法自动处理对两个表的写入.到目前为止,我非常高兴与设计,并没有真正发现任何缺点,除了一个更复杂的保存方法.

猜你在找的MsSQL相关文章