63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
1 | |
Какая должна быть связь?27.02.2020, 10:36. Показов 1219. Ответов 26
Есть две модели, модель станций
И модель маршрутов Вопрос какая между ними должна быть связь? Один ко многим, или многие ко многим? (Маршрут включает в себя информацию: начальная станция и время отправления; конечная станция и время прибытия; список промежуточных станций, и время прибытия/стоянки/отправления для каждой из них.)
0
|
27.02.2020, 10:36 | |
Ответы с готовыми решениями:
26
Какой должна быть строка подключения к БД если она в другом проекте? Какая связь проекта с файлами в папке AppData\Local\Temp\Temporary ASP.NET Files Какая должна быть структура проекта онлайн магазина? Какая должна быть длина одной стороны шестиугольника, если расстояние между ними должно быть 2.5 метра. |
27.02.2020, 22:27 | 2 |
Anvean, теоретически много-ко-многим: у каждого маршрута может быть много станций, как и каждая станция может быть во многих маршрутах.
Но тут проблема: сложно будет сохранить и определить порядок станций для каждого маршрута. Решение: создать промежуточный объект RailrouteStation с полями Railroute, Station, Order и связать его при помощи 1-ко-многим с Railroute и Station UPD: Еще бы уникальный индекс накинул на все поля, чтобы дублирования позиций не было
1
|
63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
27.02.2020, 22:29 [ТС] | 3 |
Cupko, Я думаю эта модель не есть правильной, можно ведь просто модель маршрута определить как один список станций, так вроде бы должно быть проще, но я пока думаю какие могут быть подводные камни. Как бы вы реализовали модель маршрутов?
Добавлено через 1 минуту Cupko, уникальный индекс на поля, это как?:D
0
|
27.02.2020, 22:31 | 4 |
Я ж вам и говорю, проблема только в порядке станций. Вы не сможете гарантировать что первая/последняя/промежуточная станция будет в выборке там, где надо. Добавляйте поле Order и сортируйте по нему. Откажитесь от свойств First/Last/Intermediate и выбирайте их из коллекции после сортировки
0
|
63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
27.02.2020, 22:34 [ТС] | 5 |
Cupko, из этой коллекции virtual Icollection<Station> Stations?
0
|
63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
27.02.2020, 22:38 [ТС] | 7 |
Cupko, Ага,теперь дошло, это получается новая модель, верно?
0
|
63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
27.02.2020, 22:42 [ТС] | 9 |
Cupko, спасибо вам огромное, вы себе не представляете как меня выручаете.
Добавлено через 2 минуты Cupko, только вот, если отказаться от свойств First/intermedia/last в модели Railroute, оставить в ней только поле для связи с моделью станций и конструктор?
0
|
27.02.2020, 22:48 | 10 |
Anvean, не совсем понял вопроса. Убираете First/Last/Intermediate, оставляете RailrouteStations (ICollection<RailrouteStation>), тогда First у вас будет -
RailrouteStations.OrderBy(x => x.Order).FirstOrDefault()?.Station , Last - RailrouteStations.OrderByDescending(x => x.Order).FirstOrDefault()?.Station , Intermediate - RailrouteStations.OrderBy(x => x.Order).Skip(1).Take(RailrouteStations.Length - 2)
0
|
63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
27.02.2020, 22:53 [ТС] | 11 |
Cupko, как понять "оставляете" если RailrouteStantions это новая модель будет с полями(Railroutr/stantion/ordee), тем не менее модель Railroute тоже ведь останется но из нее мы убрали фактически все поля, что будет в ней?
0
|
27.02.2020, 22:56 | 12 |
Anvean, ничего вы с модели Railroute не убираете, как и из Station (кроме связей между друг другом). Связи меняете на RailrouteStation и там и там. Всё.
Не по теме: Вот если бы вы вместо скринов постили код, мне было бы проще объяснить, скопипастив некоторые фрагменты
0
|
63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
27.02.2020, 23:06 [ТС] | 13 |
Cupko, Насчет скринов учту, подитожу если вы не против.
Делаю новую модель RailrouteStantion с полями остальных моделей и свойством для сортировки. ?При этом из модели Railroute не удаляю свойства Firststation/intermedia/last, но я от них отказываюсь¿ Связываю новую модель 1-ко-многим с Railroute и Station. Дальше работаю с UnitOfWork с помощью модели RailrouteStantions. Так-же нужно будет добавить контекст данных для RailrouteStantions. Выделил то что не совсем понятно. Все верно понял?
0
|
27.02.2020, 23:10 | 14 |
Удаляете
Не надо с ней работать напрямую, нужно работать с Railroute или Station. Это просто модель для связи, никакой смысловой нагрузки она не несет. Нужно
0
|
3654 / 2567 / 717
Регистрация: 02.08.2011
Сообщений: 6,926
|
||||||||||||||||
27.02.2020, 23:13 | 15 | |||||||||||||||
Тут yurickas уже упоминал ,что станции могут быть узловыми, то есть входить в состав нескольких маршрутов.
Поскольку станция - это фактическое единственное общественное место, откуда отправляются и куда прибывают пассажиры, то я бы саму таблицу станций оформил как справочник с некоторой доп. информацией. Далее маршрут - это последовательность точек маршрута, соответственно с начальной и конечной точкой маршрута. Грубо модель бы вылядела так:
1) Route to RoutePoint - one-to-many 2) Station to RoutePoint - one-to-many 3) RoutePoint to Station - one-to-one Те свойства, которые можно добавить, а можно и не добавлять - это уже на свое усмотрение, у вас там как раз в ТЗ было указано, что это поощряется. Далее просто осталось правильно сконфигурировать через EntityTypeConfiguration<T> и начальная модель готова.
0
|
63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
27.02.2020, 23:14 [ТС] | 16 |
0
|
63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
27.02.2020, 23:26 [ТС] | 17 |
IamRain, Ваш вариант выглядит несколько сложнее, даже не знаю чей вариант мне более подходит.
Спасибо вам за очень подробный ответ, лайки закончились к сожалению:D
0
|
3654 / 2567 / 717
Регистрация: 02.08.2011
Сообщений: 6,926
|
|
27.02.2020, 23:34 | 18 |
А вы ясно сформулируйте сколько у вас сущностей и сколько (и каких) связей между этими сущностями, тогда можно будет сравнить сложности этих моделей.
Да ничего, зато картинок с кодом много, Instagram тинейджер Добавлено через 4 минуты Anvean, учитывая, что у вас возникали проблемы с конфигуроированием БД и с миграциями в соседнем посте, рекомендую прочесть эту книгу от Джулии Лерман - Code First.
0
|
Cupko
|
27.02.2020, 23:35
#19
|
0
|
63 / 55 / 10
Регистрация: 12.02.2019
Сообщений: 303
|
|
27.02.2020, 23:43 [ТС] | 20 |
IamRain, теперь понял почему инстаграм тинейджер, скриншоты мне показались намного удобнее, но я уже понял что это не так))
В варианте Сирко, две сущности и одна промежуточная, выходит две связи один ко многим. Выходит его вариант легче?) Добавлено через 3 минуты IamRain, Спасибо за книгу, к сожалению у меня две недели на этот проэкт, ТЗ я думаю вы видели, в связи с этим вообще нет времени читать книги, а информации в интернете очень часто недостаточно, поэтому и приходится задавать глупые вопросы умным людям, если зафейлю проэкт и меня не возьмут на препрод, обязательно прочту эту книгу:)
0
|
27.02.2020, 23:43 | |
27.02.2020, 23:43 | |
Помогаю со студенческими работами здесь
20
Какая температура должна быть? Какая база должна быть? какая должна быть температура? какая скорость должна быть? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |