Допустим, у меня есть две таблицы:
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
Shape2Color
,ShapeXColor
,ShapeColorLink
.Ответы:
Придумывая хорошее имя для таблицы, которая представляет
many-to-many
отношения, отношения легче читать и понимать. Иногда найти хорошее имя нетривиально, но обычно стоит задуматься.Пример:
Reader
аNewspaper
.А
Newspaper
имеет многоReaders
иReader
имеет многоNewspapers
Вы могли бы назвать отношения,
NewspaperReader
но такое имяSubscription
могло бы лучше передать смысл таблицы.Имя
Subscription
также более идиоматично в случае, если вы хотите отобразить таблицу на объекты позже.Соглашение для именования
many-to-many
таблиц заключается в объединении имен обеих таблиц, которые участвуют в отношении.ColourShape
будет разумным по умолчанию в вашем случае. Тем не менее, я думаю , что Ник D придумал два больших предложений:Style
иTexture
.источник
Как насчет ColorShapeMap или Стиль или Текстура .
источник
Интересно, что около половины ответов дают общий термин для любой таблицы, которая реализует отношение «многие ко многим», а другая половина ответов предлагает название для этой конкретной таблицы.
Я назвал эти таблицы пересечения таблиц в целом.
С точки зрения соглашений об именах, большинство людей дают имя, которое является объединением двух таблиц в отношении «многие ко многим». Так что в этом случае «
ColorShape
» или «ShapeColor
.» Но я считаю, что это выглядит искусственно и неловко.Джо Селко рекомендует в своей книге «Стиль программирования SQL» назвать эти таблицы в естественном языке. Например, если форма окрашена цветом, назовите таблицу
ColoredBy
. Тогда вы могли бы иметь диаграмму, которая более или менее читается естественным образом, как это:И наоборот, вы можете сказать, что Color окрашивает Shape:
Но похоже, что средняя таблица - это то же самое, что
Color
и соглашение о присвоении имен во множественном числе. Слишком запутанно.Вероятно, наиболее ясно использовать
ColoredBy
соглашение об именах. Интересно, что использование пассивного голоса делает соглашение об именах более понятным.источник
HasColor
может быть другое возможное имя для таблицы пересечений, которая использует естественный язык.hasColour
/ColouredBy
для чего? Это побеждает цель именования, чтобы использовать,DESCRIBE
чтобы выяснить отношения.ShapeHasColor
иTextHasColor
?Назовите таблицу как хотите, если она информативна:
С точки зрения модели, эта таблица называется таблицей соединения / следования / перекрестной ссылки. Я сохранил привычку использовать
_XREF
в конце, чтобы сделать отношения очевидными.источник
Это ассоциативная организация, и сама по себе она часто имеет большое значение.
Например, отношение «многие ко многим» между ПОЕЗДАМИ и ВРЕМЕНИМИ порождает РАСПИСАНИЕ.
Если нет очевидной новой сущности (такой как расписание), тогда соглашение состоит в том, чтобы запустить два слова вместе, давая COLOUR_SHAPE или подобное.
источник
Таблица отображения - это то, что обычно называется.
источник
To
в названии. Что делать, если у вас есть форма с HighlightColor. Если вы это называетеShapeHighlightColor
, это будет немного двусмысленно, будь то ShapeHighlight, сопоставленный с цветом, или Shape, сопоставленный с цветом подсветки. Так что,ShapeToHighlightColor
может быть, более понятно.Я работал с администраторами баз данных, которые называют это таблицей соединений .
Colour_Shape довольно типично - если только отношение не имеет явного доменно-специфического имени.
источник
Colour_Shape_Colour
иColour_Shape_Shape
.Я обычно слышу, что называется Junction Table. Я называю таблицу тем, к чему она присоединяется, поэтому в вашем случае это либо ColorShape, либо ShapeColor. Я думаю, что для Shape более логично иметь цвет, чем для Color иметь форму, поэтому я бы согласился
ShapeColor
.источник
Junction table
ИЛИ
Bridge Table
ИЛИ
Join Table
ИЛИ
Map Table
ИЛИ
Link Table
ИЛИ
Cross-Reference Table
Это начинает использоваться, когда мы используем отношения «многие ко многим», когда ключи из обеих таблиц образуют составной первичный ключ соединительной таблицы.
источник
Я рекомендую использовать комбинацию названий сущностей и поместить их во множественное число. Таким образом, имя таблицы будет выражать связь «многие ко многим».
В твоем случае:
источник
Промежуточный Стол или Стол Соединения
Я бы назвал его «ColorShapes» или «ColorShape», в зависимости от ваших предпочтений
источник
Я также слышал термин « ассоциативная таблица».
имя для вашей таблицы может
ColorShapeAssociations
означать, что каждая строка представляет связь между этим цветом и этой формой. Наличие ряда подразумевает, что цвет приходит в эту форму, и что форма приходит в этот цвет. Все строки с определенным цветом будут представлять собой набор всех фигур, с которыми связан цвет, а строки для определенной формы будут представлять собой набор всех цветов, в которые входит эта форма ...источник
В целом, большинство баз данных имеют своего рода соглашение об именах для индексов, первичного ключа и так далее. В PostgreSQL было предложено следующее именование:
Ваш стол для меня является связанным столом. Чтобы соответствовать приведенному выше названию, я бы выбрал следующее:
В списке объектов таблицы связанная таблица будет после tablename1. Это может быть визуально более привлекательным. Но вы также можете выбрать имя, которое описывает цель ссылки, как предлагали другие. Это может помочь в сокращении имени столбца id (если ваша ссылка должна иметь собственный именованный идентификатор и на него есть ссылки в других таблицах).
источник
Я всегда был неравнодушен к термину «Таблица гамбургеров». Не знаю почему - это звучит просто хорошо.
О, и я бы назвал таблицу ShapeColor или ColorShape в зависимости от того, какая таблица используется чаще.
источник
Стол «Много-Много». Я бы назвал это «ColourShape» или наоборот.
источник
Трудно ответить на что-то столь произвольное, как это, но я склонен предпочесть идею Тоша назвать ее после чего-то в реальной области, а не какое-то общее описание базовых отношений.
Зачастую таблица такого рода превращается в нечто более богатое для модели предметной области и приобретает дополнительные атрибуты помимо связанных внешних ключей.
Например, что если вам нужно хранить текстуру в дополнение к цвету? Может показаться немного странным расширение таблицы SHAPE_COLOR для хранения ее текстуры.
С другой стороны, есть еще что сказать для принятия обоснованного решения, основанного на том, какие требования вы предъявляете сегодня, и готовности к рефакторингу, когда дополнительные требования будут введены позже.
Все это говорит о том, что я бы назвал это ПОВЕРХНОСТЬ, если бы у меня было понимание того, что позже появятся дополнительные свойства, подобные поверхностным. В противном случае у меня не возникло бы проблем с тем, чтобы назвать это SHAPE_COLOR или что-то в этом роде и перейти к более насущным проблемам дизайна.
источник
Может просто
ColoredShape
?Я не уверен, что понял вопрос. Это об этом конкретном случае или вы ищете общие рекомендации?
источник
Я бы назвал его точными именами соединяемых таблиц = ColorShape.
источник
В дополнение к тому, что разработчик Art связан,
было бы обычным соглашением об именах. На диаграмме ER это будет отношение.
источник
Назовите это перекрестной справочной таблицей.
источник
Я бы использовал
r_shape_colors
или вr_shape_color
зависимости от его значения.r_
будет замена дляxref_
в этом случае.источник
Мой голос за имя, которое описывает таблицу лучше всего. В этом случае это может быть,
ShapeColor
но во многих случаях лучше имя, отличное от конкатенации. Мне нравится удобочитаемость, и для меня это означает отсутствие суффиксов, подчеркиваний и префиксов.источник
Я лично пошел бы на Colour_Shape с подчеркиванием: только потому, что я видел, что эта конвенция довольно сильно выросла. [но согласен с другими постами здесь, что, возможно, есть более «поэтические» способы сделать это].
Помните, что внешние ключи также должны быть построены на этой таблице соединений, которая будет ссылаться как на таблицы Color & Shape, так и на идентификацию взаимосвязи.
источник
Я часто вижу соглашение о присоединении к таблицам, которое мне лично нравится, «Colour_v_Shape», которое, как я слышал, в народе называют «против таблиц».
С первого взгляда становится ясно, что таблица представляет отношение «многие ко многим», и помогает избежать этой (хотя и редкой) запутанной ситуации, когда вы пытаетесь объединить два слова, которые в противном случае могли бы образовать составное слово, например «Масло». и «Молоко» может стать «Молочным молоком», но что, если вам также необходимо представить сущность под названием «Пахта»?
Делая это таким образом, вы получите «Butter_v_Milk» и «Buttermilk» - без путаницы.
Кроме того, мне нравится думать, что в оригинальном вопросе есть ссылка на Foo Fighters.
источник