Соглашения об именах не являются стандартными !
Наука не субъективна !
Существуют стандарты, и есть причины для стандартов,Все эти вопросы были решены и стандартизированы более 30 лет назад.Прочитайте мой IDEF1X Введение , IDFE1X - это стандарт моделирования реляционных баз данных, другого нет.
Во-первых, нет «Пересечение»'или' связать 'таблицы, каждая таблица имеет определенную цель, которая определяется во время упражнения по моделированию, и она не предназначена для связывания таблиц или пересечения путей.Когда вы применяете этот формальный подход, таблицы и их значение естественно раскрываются.
Во-вторых, если вам нужна реляционная база данных, вам необходимо реализовать реляционные ключи или реляционные идентификаторы в соответствии с реляционной моделью.Отношения Идентифицирующие или Неидентифицируемые .Это означает, что нет суррогатов.Таблицы не являются изолированными двумерными существами, как только эти Идентификационные Идентификаторы определены, становится понятным логическое или третье измерение.
Обычно это означает составные ключи.
В-третьих, если вы используете стандарт IDEF1Xво время моделирования у вас будет глагольных фраз (подробности в ссылке).Они очень четко идентифицируют отношения между таблицами.Опять же, «пересекаются» и «ссылки» удаляются, у вас есть правильные имена и значения.
Согласованность использования не имеет значения, согласованность данных, значения, имеет значение.Смоделируйте данные, а не использование.
Поэтому, когда вы дойдете до точки, где вы оцениваете проблему в вашем вопросе, требуемое наименование ясно;это расширение того, что уже определено и смоделировано.Нет необходимости в трехчастных именах, двухчастных имен вполне достаточно.
- Учитывая ваши таблицы
User
и Product
UserProduct
не является полным именем по рассуждению выше
допустим, они были Независимыми
- . Любимая таблица будет Зависимой на обоих
- , ее ПК будет
UserPK
плюсProductPK
- Фраза глагола
Each User Favours zero-to-many Products
Я бы назвал это UserFavoured
или UserFavourite
User_Favourite_Product
перегружен, третья часть избыточна
Аналогично, Each User Elects zero-to-many Products
(или Supports
или Elevates
)
- его PK будет
UserPK
плюс ProductPK
(если вы не любите дубликаты) - Поэтому
UserElected
или UserElection
Выше приведены ассоциативные таблицы (то, что вы называете «ссылкой»)) или несколько столбцов, добавленных к тому же.Покупка существенно отличается (не «ссылка»).Для покупки должны быть записаны различные детали, которых нет ни в User
, ни в Product
.
- Я бы назвал это
Purchase
UserPurchase
избыточнои глупо UserPurchaseProduct
это глупость в квадрате
(я поддерживал пределы вашего вопроса. На самом деле, не было бы таблицы покупок, там было быSalesOrder
, который составляет основу Покупки, коммерческое мероприятие, и SalesOrderItem
, в котором подробно указывается Products
.