У меня возникла проблема моделирования этой ситуации. Я разрабатываю систему купонов на основе местоположения. Пользователь может определять зоны и предложения, а затем связывать каждое предложение с несколькими зонами. Также каждая зона может иметь более одного предложения. Таким образом, зона и предложение имеют много-много отношений. Пользовательский объект владеет обоими объектами. Зона и предложение могут быть связаны только в том случае, если один и тот же пользователь владеет обоими из них. Диаграмма может быть очень полезна. Спасибо.Проектирование отношения многих из многих между тремя объектами
ответ
Предполагая, что пользователь может иметь собственные зоны и предлагает независимо от ли на самом деле подключены зон и предложения, вы можете сделать что-то вроде этого:
Это классическая проблема ромбовидной зависимости, где алмаз нижнего должен ссылаться на тот же алмаз верха для как алмазов стороны, что обеспечивается с помощью , идентифицирующие отношения так, чтобы верхняя ПК распространяется вниз с обеих сторон, а затем объединены в нижней части (примечание FK1 и FK2 перед ZONE_OFFER.USER_ID).
Вы всегда можете добавить еще (суррогатные?) Ключи к этой модели, если есть внешние причины для этого, но эта базовая структура должна существовать в определенной форме или форме, чтобы обеспечить только зоны и предложения , такие же пользователь может быть подключенным.
Вот ваша модель базы данных:
Tbl_Zone
id_Zone not null
id_User not null
zoneDescription not null
....
Tbl_Offer
id_Offer not mull
id_User not null
offerDescription not null
....
Tbl_ZoneOffer
id_ZoneOffer
id_Zone not null
id_Offer not null
Назад к правилу вашего пользователя, это будет частью вашей бизнес-логики, где столы будут фильтроваться до отображения:
SELECT * FROM Tbl_Zone WHERE id_User = myUserIdentifier
SELECT * FROM Tbl_Offer WHERE id_User = myUserIdentifier
и, для перечня предложений для каждой зоны:
SELECT zoneDescription, offerDescription FROM Tbl_ZoneOffer
INNER JOIN Tbl_Zone on Tbl_ZoneOffer.id_Zone = Tbl_Zone.id_Zone
INNER JOIN Tbl_Offer on Tbl_ZoneOffer.id_Offer = Tbl_Offer.id_Offer
WHERE Tbl_Zone.id_User = myUserIdentifier
- 1. От одного до многих сопоставление между тремя объектами в JPA
- 2. Oracle Формирует отношения многих-многих.
- 3. Laravel создает отношения 1-1 из отношения многих-многих.
- 4. Модель домена для необязательного отношения многих-многих.
- 5. как запросить отношения многих и многих?
- 6. Как смоделировать отношения между множеством многих и многих объектов
- 7. Должен ли я создавать отношения многих-многих?
- 8. Zend от многих до многих Отношения
- 9. Отношения родительского ребенка от многих до многих
- 10. Objectify/AppEngine/Java: отношения многих-многих
- 11. Выбор первичного ключа для отношения многих-многих
- 12. Entity Framework От многих до многих Отношения 3 Классы
- 13. Трехстороннее сопоставление многих из многих в NHibernate
- 14. Проектирование отношения с тремя объектами, где два объекта не имеют отношения
- 15. Отношения во многих ларавеле
- 16. Что такое отношения многих?
- 17. Отношения во многих отношениях
- 18. Проектирование связи между объектами
- 19. Subquery между тремя объектами
- 20. Перенос основных данных многих из многих
- 21. Отношения со многими для многих
- 22. тип отношения во многих отношениях:
- 23. от многих до многих отношений в ddd
- 24. Отношения во многих отношениях в JDO
- 25. Схема схемы для отношения (многие из многих)
- 26. Entity Framework: список идентификаторов для отношения многих-многих
- 27. Laravel красноречивые отношения между двумя многими из многих связанных таблиц
- 28. Заполнение многих для многих через отношения в Sails.js
- 29. GORM - отношения моделей между объектами
- 30. Нестандартный дизайн для многих-многих-многих.
Этот вопрос не соответствует теме, поскольку речь идет о разработке программного обеспечения вместо разработки. –