【发布时间】:2010-12-28 03:35:06
【问题描述】:
我希望您能帮助我解决我们的这项任务。
最初我们有这些表:
hwtype
id name
1 router
2 switch
hwelement
id idhwtype name
1 1 RTR1
2 1 RTR2
3 2 SWT1
hwattributes
id idhwtype name
1 1 speed
2 1 IP
3 2 ports
hwtypeattributes
id idhwelement idhwattribute value
1 1 1 100mb
2 1 2 172.16.3.23
3 2 1 10mb
4 2 2 172.16.3.26
5 3 3 8
我们现在需要的是一个以这种方式呈现数据的函数(根据 hwtype )
对于 hwtype.name =路由器
element speed IP
RTR1 100mb 172.16.3.23
RTR2 10mb 172.16.3.26
这个想法是让表格能够包含新的元素类型、元素和属性,而无需修改表格编码。
我一直在寻找示例,但不幸的是,我找到了可以对值进行聚合的好示例,这是我没有考虑过的。
提前感谢您的帮助
【问题讨论】:
-
在询问有关 SQL 的问题时,请务必标明您使用的 RDBMS 品牌。例如。
sql-server、oracle、mysql等。答案很重要。 -
您不是第一个梦想通过使用实体-值架构实现无需更改数据库的系统的人。不幸的是,您最终可能也不会是最后一个诅咒该决定的人:(如果更改架构还为时不晚,您应该考虑一下。
标签: sql dynamic pivot entity-attribute-value