假设我有两个表:
Table: Color
Columns: Id, ColorName, ColorCode
Table: Shape
Columns: Id, ShapeName, VertexList
我应该如何称呼将颜色映射到形状的表格?
Table: ???
Columns: ColorId, ShapeId
假设我有两个表:
Table: Color
Columns: Id, ColorName, ColorCode
Table: Shape
Columns: Id, ShapeName, VertexList
我应该如何称呼将颜色映射到形状的表格?
Table: ???
Columns: ColorId, ShapeId
Intermediate Table或Join Table
我会把它命名为"ColorShapes"或"ColorShape",根据您的喜好。
ColorShapeAssociations
,意思是每一行表示该颜色和该形状之间的关联。行的存在意味着该颜色有该形状,并且该形状有该颜色。具有特定颜色的所有行将是该颜色与所有相关形状的集合,而具有特定形状的行将是该形状所包含的所有颜色的集合...对于我而言,你的表是一个链接表。为了符合上述命名方式,我会选择以下命名:
在表对象列表中,链接表将位于tablename1之后。这可能更具视觉吸引力。但你也可以选择一个描述链接目的的名称,就像其他人建议的那样。这可能有助于保持id列的名称简短(如果你的链接必须有自己的命名id,并被其他表引用)。
"多对多" 表。我会称之为 "颜色形状" 或反过来。
可能只是ColoredShape
吗?
我不确定我理解问题了。这是关于特定情况还是你在寻找一般指导方针?
我一直对术语“汉堡桌”有好感。不知道为什么,听起来很不错。
哦,如果哪个表更常用,我会称其为ShapeColor或ColorShape。
回答这样任意的问题很困难,但我倾向于采用tosh的想法,将其命名为实际领域中的某个东西,而不是一些基本描述底层关系的通用名称。
通常,这种表格会演变成领域模型中更丰富的内容,并且会承担超出链接外键之上的其他属性。
例如,如果您需要存储纹理以及颜色,怎么办?将SHAPE_COLOR表扩展以容纳其纹理可能看起来有点奇怪。
另一方面,也有人认为,根据今天的需求做出明智的决策,并准备在引入其他要求时进行重构,这也是有道理的。
总之,如果我知道将来会引入类似表面的属性,我会称其为SURFACE。如果没有,我就没有问题称其为SHAPE_COLOR或类似的名称,并继续解决更紧迫的设计问题。
ColorShape
会是一个通常的命名约定。在实体关系图中,它将是一个关系。
称之为交叉引用表。
XREF_COLOR_SHAPE
(
XCS_ID INTEGER
C_ID INTEGER
S_ID INTEGER
)