Синоним отношения «многие ко многим» (реляционные базы данных) - PullRequest
1 голос
/ 28 апреля 2010

Что является синонимом отношения «многие ко многим»? Я закончил писать объектно-реляционный маппер, но все еще не знаю, как назвать функцию, которая добавляет это отношение.

addParent () и addChild () казались вполне логичными для множества один-один / один-ко-многим и addSuperclass () для наследования один-к-одному, но addManyToMany () может показаться совершенно неинтуитивным для объекта. ориентированный программист. addSibling () или addCousin () тоже не имеют смысла.

Есть предложения? И прежде чем отклонить это как вопрос, не связанный с программированием, помните, что согласованные схемы именования и инкапсуляция довольно важны для программирования:)

Ответы [ 7 ]

4 голосов
/ 28 апреля 2010

Возможно addFriend()? Другие параметры могут быть addLinked() или addRelated().

1 голос
/ 28 апреля 2010

В терминах реляционной базы данных общий случай называется зависимостью включения, т.е. «Внешний ключ» - это особый случай зависимости включения, где B - это ключ-кандидат.

0 голосов
/ 28 апреля 2010

А как насчет этой мысли:

  • connect(X, Y)
  • link(X, Y)
  • bind(X, Y)

Мало того, что трудно найти имена для такого рода отношений для объектно-ориентированных систем, но также сложно их моделировать! Объекты, как правило, живут в иерархиях ...

Посмотрите, сможете ли вы найти контейнер для таких отношений - проверьте, какие имена методов использует библиотека.

0 голосов
/ 28 апреля 2010

Tricky! похоже, что нет универсального термина, который бы соответствовал "RelateXtoY ()" - это лучшее, что я могу придумать.

Однако для любой реальной «реальной» модели данных обычно существует очевидный «глагол», который можно использовать. Например, для связи между многими, скажем, Страна и Авиакомпания вы можете использовать метод AddRouteTo (CountryId, AirlineId) или TravelledToUsing (CountryId, AirlineId).

0 голосов
/ 28 апреля 2010

в этом примере http://pastie.org/938704 вы бы просто не создали метод с именем:

AddUserGame (пользователь someUser, игра someGame)

0 голосов
/ 28 апреля 2010

Как насчет addList или addChildern или addParents или addParentsAndChildren?

0 голосов
/ 28 апреля 2010

CakePHP называет это ассоциацией «Имеет и принадлежит многим»

http://book.cakephp.org/view/85/Saving-Related-Model-Data-HABTM

...