首页 > 解决方案 > SQL中面向对象的表布局

问题描述

就我而言,我正在寻找一个简单的资产登记册。

所有物品都会有某种序列号/型号、描述、购买日期、仍然有效等。

但是某些项目会有关于它们的额外数据,例如电话将有一个 IMEI 号码和电话号码,合同期限。笔记本电脑将有一个序列号,操作系统。车辆将有注册、VIN、MOT/服务日期。出厂设备会有校准日期

我所追求的(我认为)是一种制作面向对象的表的方法,因此所有对象都是一种资产,每种类型也都有自己的特征。

我最好为每种类型的资产设置单独的表格吗?或一个主表中的冗余列。我认为这将是最好的图像,但有没有更好的方法?如果图像中的方式最好 - 我将如何做链接以忽略表格中不需要的空白列(例如汽车资产上的 IMEI 编号)

ERD

标签: sql-serversql-server-2008

解决方案


在关系数据库中执行此操作的方法是在资产和“属性”或您想要包含的内容之间建立 M:N 关系。

然后用 1:N:1 中间表对其进行标准化。

因此,基本上,您有一个包含基本数据(ID、名称、购买日期或其他内容)的资产,并且在单独的表中具有扩展属性。

看这里的图片: 在此处输入图像描述

因为您不想每次访问资产信息时都访问一个新表,而是希望将所有数据集中在一个地方并从中收集数据。


推荐阅读