1 | |
Связь "Многие ко многим". Нужна ли четвертая таблица?16.06.2015, 14:41. Показов 1004. Ответов 4
Метки нет (Все метки)
Добрый день!
Представлю свою задачу в виде детской задачи (дабы терминами не грузить-они не важны). Есть несколько групп из трех детей. Их кормят по определенному меню: Перед первым дают на выбор салат или бутерброд, на первое- суп или борщ, на второе всегда только чай. В первой группе Петя выбирает всегда Салат, Борщ и Чай; Ваня выбирает Салат, Суп, второе не ест и т.д. Подскажите, плиз, как правильнее реализовать такую связь? Еще: в таблице Foods не должно быть строк больше, чем сейчас Будет ли хорошим тоном создать еще таблицу? (см. рисунок)
0
|
16.06.2015, 14:41 | |
Ответы с готовыми решениями:
4
Связь один ко многим или многие к многим Entity Framework 6. Code First. Связь один-ко-многим и многие-ко-многим одновременно Связь многие ко многим Связь многие ко многим |
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
|
|
16.06.2015, 16:28 | 2 |
для развязки отношения m:n всегда используется только одна граничная сущность
0
|
17.06.2015, 09:50 [ТС] | 3 |
pincet, то есть добавлять четвертую таблицу неправильно?
Разве тут только отношение m:n? Разве не какое-то m:n:k? Сложно объяснить-я только с прошлой недели начал в базы данных углубляться. Разъясните, пожалуйста, и как лучше поступить в моей ситуации? Может, пример есть (я сам нашел только тривиальные примеры)? А вотЗдесь, например, еще одну таблицу внедряют. Не совсем пойму как без нее обойтись....
0
|
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
|
|
21.06.2015, 08:14 | 4 |
Стоит начать с того, что вот так — group, child1, child2, child3 — таблицы не делают. Не рассчитаны на такое ни СУБД, ни SQL. Удохнешь в мало-мальски реальном примере. Такие таблицы вытягиваются вертикально: group, child, при этом одна и та же группа повторяется много раз для каждого ребёнка. Это, собственно, таблица связи. Если связь один-ко-многим (не стоит задача учесть переводы из группы в группу), можно её объединить с таблицей детей. Ну и так далее, по всем таблицам.
0
|
21.06.2015, 13:49 [ТС] | 5 |
Видимо, я вас запутал.
На самом деле ребенок1, реб2, реб3- это пустые поля (созданы, чтобы Entity Framework автоматически создал подобные свойства для класса Groups-наверно, это тоже зло вопиющее), которые будут заполняться в ходе выполнения программы. То есть поле ребенок1 группы0 будет содержать значение (в моем примере это салат или борщ) в зависимости от того, какое блюдо (закуска, первое или второе) выберет пользователь для конкретной группы. То есть, значения "петя", "Вася" и т.д. на самом деле будут сначала пустыми, а потом будут заполнены салатами, борщами и т.д. Вся эта тягомотина из-за переменчивости меню (Например, салат"оливье" завтра может стать Салатом"цезарь", но ребенок1 группы0 так и будет есть салат перед первым) На самом деле там еще сложнее всё, видимо не по зубам мне пока такие орешки-я хотел для портфолио прогу написать, но боюсь, что только облажаюсь. Спасибо за ответы
0
|
21.06.2015, 13:49 | |
21.06.2015, 13:49 | |
Помогаю со студенческими работами здесь
5
Связь многие-ко-многим Связь многие ко многим Связь Многие Ко Многим Связь многие ко многим Связь многие ко многим Связь многие ко многим Связь многие ко многим Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |