日期:2014-05-18  浏览次数:20730 次

【设计问题求助】用字段存储表名以关联不同表结构
最近公司的项目中涉及到一个这样的问题:
一个站内有多种设备,每种设备又有不同的属性,但是又有一些常用的属性是经常要汇总要查询的,例如资产编号

我的设计是这样的:

站与设备表是一对多的,设备表中存的是所有种类设备的公共属性,例如厂商,资产编号之类的,设备表中其中一个字段用来存放表的名称,
如下:
T_Device
ID,Name,Factory,AssetsCode,TableName,Type

关联的表有天线表、蓄电池组表等等(很多),拿蓄电池表举例
T_Battery
ID,Number,Status

现在的情况是我如果查询一个站内有哪些蓄电池就很麻烦了。 先得联合 站与设备表,条件是设备类型Type=电池找到TableName,然后根据TableName去决定在哪个表查详细信息。

请问有没有更好的解决方法来设计这个数据库?

------解决方案--------------------
很多属性会有多少???

主表
id name factory assetscode 天线属性 电池属性 其他属性 ...

属性表
id name type
1 6#蓄电池 蓄电池组
2 3号天线 天线组
------解决方案--------------------
探讨
主要是设备有很多种类,可能有15、6种吧, 每个设备的属性也有10多种。全放在一个表里的话超过100个字段,这样对于界面处理不是太好吧,而且还要考虑到后期有可能扩充设备的种类。

------解决方案--------------------
加个设备属性的关系表

设备表 ID NAME

属性表 ID NAME TYPE

设备属性关系表 ID 设备ID 属性ID