最近在设计一个数据库,但是碰到这样一个难题,一直找不到合适的解决方案,希望有过类似经验的高手能够帮忙分析下,看有没有好的处理策略。

举个管道建设中的例子吧,同样有三个对象:
管道:起点连接对象,结束点连接对象,管道的其他属性信息
管件:管件名称、管件类型
设备:设备名称、设备编号、设备所属单位

关系是:管道的起点和终点连接管件或者设备,而设备和管件没有多少属性是相同的,所以不能合并,这时候表的关系应该如何建?

目前的一种考虑是使用软关联,就是在管道的表里用4个字段,分别是起点对象类型和起点对象ID,终点连接类型和终点连接ID,但是数据库建模时这种关系无法用实体关系图合理的展示,也无法在数据库中用外键关系来描述,无法保证数据的完整性,所以感觉不是很好的解决方案,想知道大家有没有更好的思路。:)