我想我已经在这里做了一个非常愚蠢的角落。让我告诉你架构。我已经有了很多东西,但我突然意识到一个大问题。
Units
- UnitId
Rings
- RingId
Keys
- RingId (FK)
- KeyId (PK)
- KeyLiteral (FK)
- KeyValue
Literals
- LiteralId
- LiteralValue
好一阵子。基本上,创建单位然后给予KeyRing。对于该环,添加了密钥,每个密钥可以具有值和文字的ID(以防止重复)。
这太好了,很棒。工作得很完美。可以毫无障碍地为项添加新属性,不再需要硬编码表。好哇。
然后我意识到某些项目需要是可能项目列表中的值。好的,没问题。
Lists
- ListId
ListItems
- ListId (FK)
- ListItemId (PK)
- ListItemValue
哦,是的,现在我有办法制作清单。但是....... 如果它只是我在KeyValue中从List返回的字符串值,那实际上没有用。如果ListItemValue发生了变化,我们并没有真正解决任何问题。所以我可以在KeyValue中使用ListItemId。
但是我必须弄清楚如何通过除了它的文字名称之外的任何内容调用Key来从ListItems表中获取ListItemValue。此外,并非所有Keys都与列表相关。
有什么想法吗?
答案 0 :(得分:1)
“识别您的实体并构建表格以支持它们。”
“这个项目不可能。”
如果确实如此,那么不要尝试使用关系数据库技术。关系模型被设想为通用数据管理模型,其中假设数据/信息要求非常稳定。
如果您的用户更改要求的速度比他更改内容更快,那么关系技术就不适合尝试满足他的要求。
答案 1 :(得分:0)
这是另一个重新发明的超级通用名称 - 价值对吗?我真的不了解戒指/单位/钥匙的事情,但它让我想起过去我曾经看过的尝试制作超灵活的名字 - 价值对,最终会变得不可思议并且表现不佳。
识别您的实体&构建表来支持它们。