在同一 table 中的记录之间建模抽象 "compatibility" 的最佳 RDBMS 结构是什么
What's the best RDBMS structure to model an abstract "compatibility" between records in the same table
我有 table 个小部件。一些 Widgets 通过抽象分组与其他 Widgets 兼容:一个组中的所有 Widgets 都与所有其他 Widgets 兼容,尽管分组本身没有具体定义。实际上,当添加一个新的“Widget B”时,用户可以标记它与现有“Widget A”的兼容性,然后业务逻辑将确保适当的数据结构来表达与所有其他已经与 Widget A 共享兼容性的 Widget 的兼容性。
我目前的观念:
Widget (widget_id PK, name)
Compatibility (compat_id PK)
Widget_Compatibility (widget_id FK, compat_id FK)
其中 Compatibility 是一个完全任意的对象,没有属性,但必须通过 link table.
有一个或多个相关的 Widget
问题是:是否有其他常见(或更有效)的模式来表示这个概念?
(我的第一个 SO post,在此先感谢您的耐心等待)
为什么不向您的小部件添加“兼容组”字段 table?当您想指示 2 个小部件兼容时,如果任一小部件已填充此字段,则使用该字段中的值,否则生成一个新值并更新两个小部件记录上的字段
我有 table 个小部件。一些 Widgets 通过抽象分组与其他 Widgets 兼容:一个组中的所有 Widgets 都与所有其他 Widgets 兼容,尽管分组本身没有具体定义。实际上,当添加一个新的“Widget B”时,用户可以标记它与现有“Widget A”的兼容性,然后业务逻辑将确保适当的数据结构来表达与所有其他已经与 Widget A 共享兼容性的 Widget 的兼容性。
我目前的观念:
Widget (widget_id PK, name)
Compatibility (compat_id PK)
Widget_Compatibility (widget_id FK, compat_id FK)
其中 Compatibility 是一个完全任意的对象,没有属性,但必须通过 link table.
有一个或多个相关的 Widget问题是:是否有其他常见(或更有效)的模式来表示这个概念?
(我的第一个 SO post,在此先感谢您的耐心等待)
为什么不向您的小部件添加“兼容组”字段 table?当您想指示 2 个小部件兼容时,如果任一小部件已填充此字段,则使用该字段中的值,否则生成一个新值并更新两个小部件记录上的字段