dev*_*xer 126 sql database database-design data-modeling naming-conventions
假设我有两张桌子:
Table: Color
Columns: Id, ColorName, ColorCode
Table: Shape
Columns: Id, ShapeName, VertexList
Run Code Online (Sandbox Code Playgroud)
我该怎么称呼将颜色映射到形状的表格?
Table: ???
Columns: ColorId, ShapeId
Run Code Online (Sandbox Code Playgroud)
tos*_*osh 172
计算机科学只有两件难事:缓存失效和命名事物
- Phil Karlton
为表示many-to-many关系的表提供一个好名称可以使关系更容易阅读和理解.有时找到一个好名字并不是微不足道的,但通常值得花一些时间思考.
一个例子:Reader和Newspaper.
A Newspaper有很多Readers,Reader有很多Newspapers
你可以调用这种关系,NewspaperReader但是一个名字Subscription可能会更好地传达表格的内容.
Subscription如果您想稍后将表映射到对象,该名称也更加惯用.
命名many-to-many表的约定是关系中涉及的两个表的名称的串联.ColourShape在你的情况下,这将是一个合理的默认值.也就是说,我认为尼克D 提出了两个很好的建议:Style和Texture.
Bil*_*win 22
有趣的是,大约一半的答案为任何实现多对多关系的表提供了一个通用术语,而另一半的答案建议了这个特定表的名称.
我通常称这些表为交叉表.
在命名约定方面,大多数人给出的名称是多对多关系中两个表的混合.所以在这种情况下," ColorShape"或" ShapeColor." 但我发现这看起来很人性和尴尬.
Joe Celko在他的书"SQL Programming Style"中建议以某种自然语言的方式命名这些表.例如,如果Shape由Color着色,则为表命名ColoredBy.然后你可以有一个或多或少自然读取的图表如下:
Shape <-- ColoredBy --> Color
Run Code Online (Sandbox Code Playgroud)
相反,你可以说颜色为一个形状:
Color <-- Colors --> Shape
Run Code Online (Sandbox Code Playgroud)
但这看起来像中间表Color与复数命名约定相同.太混乱了.
可能最清楚的是使用ColoredBy命名约定.有趣的是,使用被动语音使命名约定更加清晰.
OMG*_*ies 18
只要提供信息,就可以将表命名为您喜欢的名称:
COLOR_SHAPE_XREF
Run Code Online (Sandbox Code Playgroud)
从模型的角度来看,该表称为连接/循环/交叉引用表.我一直保持着_XREF在最后使用这种关系的习惯.
小智 6
映射表通常称为映射表。
ColorToShape
ColorToShapeMap
Run Code Online (Sandbox Code Playgroud)
我曾与DBA一起工作过,称之为联接表。
Colour_Shape是相当典型的-除非该关系具有明确的域特定名称。
或者 Bridge Table
或者 Join Table
或者 Map Table
或者 Link Table
或者 Cross-Reference Table
当我们处理多对多关系时,这会派上用场,其中来自两个表的键构成联结表的复合主键。
我建议使用实体名称的组合并将它们放在复数形式中。因此,表的名称将表达“多对多”连接。
在你的情况下:
颜色 + 形状 = 颜色形状
我通常听到称为连接表。我根据它连接的内容命名表格,所以在你的情况下,要么是 ColorShape,要么是 ShapeColor。我认为 Shape 有颜色比 Color 有形状更有意义,所以我会选择ShapeColor.
| 归档时间: |
|
| 查看次数: |
59664 次 |
| 最近记录: |