|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Здравствуйте, помогите, пожалуйста, разобраться, на других форумах не могут помочь, неужели настолько сложные вещи описываю, непонятно: Составляю базу данных для пиццерии (пользователи могут на сайте оформлять заказы), составил первую концептуальную модель (ER диаграмма), 1) по заданию должно быть хотя-бы 5 основных сущностей не учитывая "слабые" и ассоциации (судя по всему "сильных") и хотя-бы одна "слабая" сущность, в интернете прочитал, слабая считается сущность которая логически зависит от другой сущности Но ведь всё от чего-то зависит, заказы зависят от клиентов (оформили или нет), если не будет заказов, то и не будет пицц/других продуктов, работников, транспортных средств, значит все сущности кроме "клиент" слабые?. Или имеется в виду, что работники, то есть люди, будут жить даже если не будет заказов? (найдут другую работу, например) 2) Должно быть хотя-бы 2 ассоциации, я правильно понимаю, это значит две связи многие-ко-многим? Может ли быть в моём примере Ассоциативная сущность "использует" между "пицца"/"не пицца" и "ингредиенты"? ведь в одной пицце/не пицце(например, пирожное, а если в той же таблице будет бутылка "Кока-колы"? меняется ли тип связи?) может использоваться много ингредиентов и каждый из ингредиентов может использоваться во многих пиццах? *Может ли быть ассоциация "готовка" между "заказы" и "работники" с атрибутом "статус заказа"? 3) Требуется использовать как минимум одну конструкцию наследования, я так понимаю, в моём случае, "не-пицца" может наследоваться от "пиццы" и можно добавить атрибут "срок годности"? И в принципе, если можно, проверьте пожалуйста, правильно я расставил связи? 1. клиенты заказы, 1:M (один клиент может сделать много заказов) 2. сотрудники заказы, 1:M (один сотрудник может делать много заказов +, возможно, один заказ могут делать несколько сотрудников (натирать сыр, раскатывать тесто, добавлять начинку?)) 3. заказы пицца/не пицца, 1:М (в одном заказе может быть много пицц, одна пицца может быть в нескольких заказах?) 4. Сотрудники транспорт, 1:M (один сотрудник может пользоваться разным транспортом (самокат, скутер, автомобиль) и одним транспортом могут пользоваться много сотрудников?) 5. Пицца/не пицца ингредиенты, M:M (в одной пицце может использоваться много ингредиентов, один ингредиент может использоваться во многих пиццах) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2022, 21:58 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4, Добавляю ER-диаграмму, но почему-то файл не появляется.... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2022, 22:01 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Вроде бы, на первый взгляд все норм. Сильное-слабое, я с такими терминами не сталкивался, но, скорее всего, имеется ввиду внешний ключ который может быть NULL. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 07:13 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4, Пицца и не-пицца у вас идентичные по структуре. Имеет смысл такое? vaban4 5. Пицца/не пицца ингредиенты, M:M (в одной пицце может использоваться много ингредиентов, один ингредиент может использоваться во многих пиццах) Это просто задачка или приближено к реальности? Если более менее реальное, то нужно продумать рецепты, а не притягивать ингредиенты прям к пиццам. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 07:45 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
@PizzaPizza, Лабораторная работа. Я выбрал тему "пиццерия" В концептуальной модели (ERD) должно быть 5 основных сущностей, минимум 1 слабая сущность, связи (1 : 1 , 1 : N, N : M, унарная), минимум две ассоциации, вот я и думаю, есть ли у меня на схеме 5 основных ("сильных") сущностей и какие могут быть ассоциации, уже 3 недели потратил, тяжёлая работа и никто объяснить/помочь не может.... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 15:47 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 Здравствуйте, помогите, пожалуйста, разобраться, на других форумах не могут помочь, неужели настолько сложные вещи описываю, непонятно: Ты слишком упираешь на теорию баз данных и слишком мало думаешь о самой базе. Отсюда и все проблемы. Сильная связь или слабая это совершенно не важно. Просто сделай базу, а потом уже давай определение. Не надо подгонять физические сущности под теоретические измышления. vaban4 Может ли быть в моём примере Ассоциативная сущность "использует" между "пицца"/"не пицца" и "ингредиенты"? Заказчик заказывает продукт. В пиццерии работает от одного до тройки поваров (редко больше) и любой из них может вмешаться в подготовку заказа на любом участке (зайди в реальную пиццерию и посмотри или поговори с работниками). Значит кто готовил конкретный заказ можно не учитывать - они все готовили. Значит тебе нужны таблица заказчиков, таблица заказов и таблица продуктов. Один заказчик может сделать много заказов на протяжении нескольких дней. Значит делаешь связь 1-М. Каждый заказ может содержать несколько продуктов - "две пиццы и три колы", например. Значит еще одна связь 1-М. У продукта могут быть варианты (пицца с овощами или колбасой, кола такая или сякая, кофе с молоком или сливками). Значит делаешь таблицу добавки и привязываешь ее к продуктам. Связь 1-М. Только учти что добавки не могут идти к любому продукту. Это проще всего решается делением добавок на группы и добавлением атрибута к продуктам "брать добавки из такой-то группы". То есть нужна еще таблица групп. Доставка это почти отдельная задача. Для ее решения в таблицу заказов достаточно добавить два поля - доставлено курьером А на транспорте Б. И все. Либо сделать отдельную таблицу "доставка" и в таблице заказов ссылаться на нее одним полем. А уже в таблице доставки можно писать курьера, транспорт, время доставки, чаевые, отзыв клиента на перегар курьера и тд и тп. Думай сначала о сущностях в физическом мире. А какая из них сильная-слабая с точки зрения теории БД - определишь уже после того как сделаешь базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 16:03 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl, А какие могут быть ассоциации между моими сущностями? Может ли быть сущность "готовка" между "заказы" и "работники" с атрибутом "статус заказа"? (0,n - 0,n) И "Использование" между "работники" и "транспорт" с атрибутами "начало","конец" (формат у обоих дата) (1-1, 1-1)? У учителя есть пример, между сущностями "студент" и "учебная программа" ассоциация "оценки" с атрибутами "оценка" и "дата" (0, n - 0,n) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 19:31 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl, А как заполнять "mandatory" (связь между Заказы и Продукты)? Заказ -> продукты связь должна быть обязательной? так как каждый заказ обязательно содержит один или больше продуктов (иначе пустой заказ) и каждый продукт может содержаться или не содержаться в заказе? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 20:05 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl, С добавками не совсем понял. Есть сущность "продукты" с атрибутами {ИД, Название, Количество(остаток), цена, номер добавки} и сущность "добавки" с атрибутами {ИД, Название, Количество} нужна ещё промежуточная таблица? Допустим есть 6 видов добавок: {пицца с сыром, пицца с грибами, кола обычная, кола без сахара, кофе с молоком, кофе со сливками} Для чего нужна ещё таблица групп? ведь если не нужна добавка (например в продуктах есть ещё готовые эклеры) можно написать 0 в значении атрибута "номер добавки"? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 20:22 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Может лучше сделать так? Три таблицы блюда 1 -> M состав блюда M -> 1 Ингредиенты И отдельную таблицу "добавки" где будет кола, кофе, пирожные (например), то есть готовые блюда. И в заказе могут содержаться добавки (необязательно) и блюда (обязательно). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 20:50 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4, то есть вам нужно продемонстрировать, что вы знаете понятия эти Слабая связь: библиотеки и сущности. Клиент может существовать в базе и не делать никаких заказов. Сотрудник может существовать в базе и не выполнять никаких функций. Ингредиент может иметь запись, но нигде не использоваться. Сильная связь: пицца не может не иметь связей с ингредиентами из которых она приготовлена и персоналом, который приготовил её. Ассоциации - это скорее всего таблицы связей. Вероятно рецепт пиццы может быть таким примером. Есть ингредиенты и заказы пицц, а связь (ассоциация) между ними осуществляется таблицей рецептов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 21:06 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 White Owl, А какие могут быть ассоциации между моими сущностями? Может ли быть сущность "готовка" между "заказы" и "работники" с атрибутом "статус заказа"? (0,n - 0,n) И "Использование" между "работники" и "транспорт" с атрибутами "начало","конец" (формат у обоих дата) (1-1, 1-1)? У учителя есть пример, между сущностями "студент" и "учебная программа" ассоциация "оценки" с атрибутами "оценка" и "дата" (0, n - 0,n) Может конечно. Если ты хочешь отдельно записывать готовку. Например человек А, начал готовить в 12:00, закончил в 12:15, за это он заработал х копеек. Если хочешь - можешь создать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 21:16 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 White Owl, С добавками не совсем понял. Есть сущность "продукты" с атрибутами {ИД, Название, Количество(остаток), цена, номер добавки} и сущность "добавки" с атрибутами {ИД, Название, Количество} нужна ещё промежуточная таблица? Допустим есть 6 видов добавок: {пицца с сыром, пицца с грибами, кола обычная, кола без сахара, кофе с молоком, кофе со сливками} Для чего нужна ещё таблица групп? ведь если не нужна добавка (например в продуктах есть ещё готовые эклеры) можно написать 0 в значении атрибута "номер добавки"? Если хочешь этого избежать - разбиваешь добавки на группы: добавлять туда или сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 21:18 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl, "можно будет заказывать пиццу с молоком, а кофе с грибами" А следить за тем, чтобы таких ситуаций не возникало, разве не будет сайт/графический интерфейс, база данных ведь просто хранилище данных? То есть, например, на сайте клиент добавит в корзину эклеры и колу, колу у него будет возможность выбрать одну из двух вариантов, а вот эклеры нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 22:20 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 White Owl, А следить за тем, чтобы таких ситуаций не возникало, разве не будет сайт/графический интерфейс, база данных ведь просто хранилище данных? Целостность и непротиворечивость бизнес-модели можно реализовать как в приложении так и в базе / бекэнде. По хорошему это надо делать и там и там, потому, что ошибка на фронтэнде может привести к потере / разрушению данных в базе. Опять же, у вас в задаче нет ничего про фронтэнд и надо, вероятно, полагать, что вся бизнес логика должна обеспечиваться в рамках выполнения задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 22:30 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
"разбиваешь добавки на группы: добавлять туда или сюда" Не понимаю, как будет выглядеть сущность и какие будут атрибуты? какая связь будет с сущностью "продукты"? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 22:42 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Нашёл такую диаграмму, как она вам? может её стоит использовать + я добавлю наследование (физ/юр. лицо к "клиенты), унарная связь работники -> работники. Чтобы добавить напитки нужно создать сущность "напитки" и соединить с сущностью "заказы"? (и связь будет такая же, как у "заказы" - "заказанные пиццы" 1-M ?) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 23:33 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 White Owl, "можно будет заказывать пиццу с молоком, а кофе с грибами" А следить за тем, чтобы таких ситуаций не возникало, разве не будет сайт/графический интерфейс, база данных ведь просто хранилище данных? То есть, например, на сайте клиент добавит в корзину эклеры и колу, колу у него будет возможность выбрать одну из двух вариантов, а вот эклеры нет. Вот для этого и группы прописываются. Например у тебя будет группа: "пицце-подобное" и когда человек заказывает пиццу - интерфейс выдаст возможные добавки из этой группы. А если заказ будет на чай или кофе, то добавки будут браться из группы "горячий напиток". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 02:27 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
PizzaPizza vaban4 White Owl, А следить за тем, чтобы таких ситуаций не возникало, разве не будет сайт/графический интерфейс, база данных ведь просто хранилище данных? Целостность и непротиворечивость бизнес-модели можно реализовать как в приложении так и в базе / бекэнде. PizzaPizza По хорошему это надо делать и там и там, потому, что ошибка на фронтэнде может привести к потере / разрушению данных в базе. Но это конечно, в идеале. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 02:35 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl PizzaPizza По хорошему это надо делать и там и там, потому, что ошибка на фронтэнде может привести к потере / разрушению данных в базе. Но это конечно, в идеале. ИМХО если "мусорный объект в базе" это клиент с потерянными заказами или орфанный заказ, то это он не может быть не противоречив с точки зрения бизнес логики. Потому, что в редком бизнесе такие ошибки приемлемы и тем более "удалить одной командой" информацию при подобных ошибках может себе позволить только очень непритязательный бизнес. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 02:46 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
PizzaPizza White Owl пропущено... Нет, при правильном наборе ключей и ограничений на таблицах, ошибка в приложении может только дать ошибку в приложении. Или мусорный объект в базе, при этом он будет непротиворечив с точки зрения бизнес логики, и который можно будет удалить одной командой. Но это конечно, в идеале. ИМХО если "мусорный объект в базе" это клиент с потерянными заказами или орфанный заказ, то это он не может быть не противоречив с точки зрения бизнес логики. Потому, что в редком бизнесе такие ошибки приемлемы и тем более "удалить одной командой" информацию при подобных ошибках может себе позволить только очень непритязательный бизнес. Вполне реальная ситуация: - Звонит человек говорит что мол хочу стать вашим клиентом. Клерк говорит "ОК, диктуйте свое имя" и нажимает кнопку "добавить клиента". - Звонок обрывается... - В базе есть клиент с уникальным ID, но больше про него ничего не известно. Даже если тот-же самый человек позвонит - ему будет заново выдан ID при создании клиента. И да, потенциальный клиент может пропасть в любой момент - может даже почти целиком пройти все интервью и потом заявить: "а знаете, я передумал, прощайте". А в это время уже в несколько физических таблиц были помещены новые записи описывающие этого человека, который так и не стал клиентом. За год, в среднем, таких "мусорных клиентов" у нас набирается в среднем от пяти до десяти процентов от количества новых клиентов. Баг в приложении? Возможно. Но этот баг существует уже около сорока лет - ядро приложения до сих пор живет на Cobol, а там откат транзакции сложен . И этот баг даже стал фичей, этих клиентов раз в год переносят из списка клиентов в список "потенциальных" клиентов, для оценки качества рекламы. Раз человек позвонил - значит реклама работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 06:09 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl Вполне реальная ситуация: - Звонит человек говорит что мол хочу стать вашим клиентом. Клерк говорит "ОК, диктуйте свое имя" и нажимает кнопку "добавить клиента". - Звонок обрывается... - В базе есть клиент с уникальным ID, но больше про него ничего не известно. Даже если тот-же самый человек позвонит - ему будет заново выдан ID при создании клиента. опять же ИМХО, но ваш пример показывает ситуацию, которая никогда бы в принципе не случилась если бы я проектировал базу данных. Может это особенности кобола, но в рамках современных баз и приложений начинать транзакцию по нажатию кнопки если создается уникальный айди, я бы не стал. К тому же эти примеры не совсем корректные - вы знаете, что эти конкретные записи бесполезные и бизнес-логика подразумевает их удаление. Мусорные и орфанные записи при отсутствии проверок на стороне базы появляются не так. Например, клиент добавляет заказ и выбирает то, что например невозможно в какой то конфигурации (пицца с пиццей как топингом или чай с курьером). Если у вас ошибка на стороне приложения, то в базу могут записаться либо пустые значения либо значения из других категорий с теми же id. Например, в качестве топинга у вас будет номер курьера доставки. А на выходе вы получите пиццу со случайным топингом, который совпадет с id курьера. Или же просто запишется нулл и будет пицца без топинга или топинг без пиццы висеть в базе. Потом может это с кем то соединиться и выйти еще смешнее. Я к тому, что на стороне базы проверять полезно всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 07:02 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 тяжёлая работа Я тебя умоляю, полдня максимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 10:02 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
fkfka2, В чём смысл вашего сообщения? я делаю это задание уже 3 недели (каждый день читая разные сайты и внося изменения в диаграмму), похвастаться, что вы такой умный? так почему не написали ничего по существу? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 12:40 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 Нашёл такую диаграмму, как она вам? может её стоит использовать + я добавлю наследование (физ/юр. лицо к "клиенты), унарная связь работники -> работники. Чтобы добавить напитки нужно создать сущность "напитки" и соединить с сущностью "заказы"? (и связь будет такая же, как у "заказы" - "заказанные пиццы" 1-M ?) На картинке, которую я прикрепил, изображена концептуальная модель или логическая? а то имеются внешние ключи + ref таблицы (кстати зачем они нужны?) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 14:30 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
PizzaPizza опять же ИМХО, но ваш пример показывает ситуацию, которая никогда бы в принципе не случилась если бы я проектировал базу данных. Может это особенности кобола, но в рамках современных баз и приложений начинать транзакцию по нажатию кнопки если создается уникальный айди, я бы не стал. PizzaPizza Я к тому, что на стороне базы проверять полезно всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 15:07 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl, PizzaPizza, Правильно ли составил диаграмму? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 15:21 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl, PizzaPizza, Правильно ли составил диаграмму? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 15:27 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl, ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 19:50 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
PizzaPizza, ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 19:50 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4, А в каком месте у вас ассоциации? ЗЫ. не ждите быстрых ответов, люди заняты сейчас, мягко говоря другими делами. Кто коктейли готовит... ггг ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 20:51 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
PizzaPizza, Ассоциации пока не придумал + хочу проверить правильность того, что на данный момент есть. (Может связь неправильная, может ещё какие-то грубые ошибки) Извините, что часто пишу, делаю это 3 недели и осталось 2 дня, а нужно доделать концептуальную схему, потом перевести в логическую, и физическую и проверить их. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 21:03 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4, для лабораторной вроде годится. Вам надо быть способным объяснить смысл каждой связи и таблицы. Например мне физические/юридические лица не очень понятны, полагаю вас могут тоже спросить. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 21:14 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
PizzaPizza, Этот пример я сам не понял, взял из презентации учителя, в разделе "пример наследования" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 21:16 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 PizzaPizza, Этот пример я сам не понял, взял из презентации учителя, в разделе "пример наследования" Ну... непонимание тут чревато. Вот вы приводите структуры таблиц и связи. Вы уверены что не надо показывать как эти связи реализованы на уровне таблиц? Вы пробовали эту структуру не теоретически а практически собрать на любом SQL и опросить? Вот у вас есть ID клиента и есть ID адреса клиента (тоже вопрос, с чего у вас один физический клиент по разным адресам то? юрики - это сложнее но они обычно пиццу не заказывают). А как вы хранить будете связь клиента с адресом? Или это в рамках данной схемы не важно? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 22:36 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
White Owl, Здравствуйте, Добавил ассоциации и подправил атрибуты, можете, пожалуйста, проверить? а то если начну генерировать логическую и физическую модель ошибка может пойти дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2022, 21:07 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Также, 1) связь между Заказами и Напитками/Пиццами должна быть M-M? ведь в каждом заказе может быть много пицц/напитков и одни и те же пиццы/напитки могут быть во многих заказах? 2) лучше между Начинки и Пиццы сделать связь M-M, так как в одной пицце можно использовать разные начинки и одна начинка может использоваться во многих пиццах? 3) Ассоциация Комбо может существовать для упрощения создания акций и быстрого изменения её же? То есть, название "комбо" и стоимость (например, пицца с грибами+пицца с сыром на 200 рублей дешевле, чем, если покупать по отдельности) 4) Аналогично с ассоциацией "эксплуатирует", позволяет быстро узнать, когда и какой сотрудник начал/закончил пользоваться определённым транспортом? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2022, 23:38 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4,
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 06:46 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Ennor Tiegael, Прежде всего, это первая лабораторная работа по предмету базы данных :) 2) Клиенты - адреса у меня M-M, логика такая: у 1 клиента может быть много адресов (много квартир, дача и т.д.) и один адрес может быть закреплён за несколькими людьми (семья, родственники) 3) Про payments честно сам не понял, почему сущность соединена с "Клиенты", а не с "Заказы" (за основу была взята вот эта диаграмма Ennor TiegaelВ любом случае, вам потребуется ссылка на метод платежа из заказов - либо напрямую как 1:М, либо через таблицу-связку Имеется в виду нужно соединить таблицу Способ оплаты с таблицей Заказы связью 1-M? (а удалить связь между Способы оплаты и Клиенты надо?) 4) Ассоциация нужна просто, чтобы хранилось текущее состояние заказа (ну и потому, что по условию задания требуется создать две ассоциации) 6) Да, должна быть М:М. В одной пицце может быть много начинок и одна начинка может использоваться во многих пиццах. Когда будет окончательно готова концептуальная модель, она будет преобразована в логическую и там должна будет появиться промежуточная таблица, где будет храниться ID пицц и ID начинка, как я понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 13:53 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Такая связь должна быть? Я думал одним методом оплаты (наличные, банковский перевод) могут воспользоваться многие клиенты и один клиент может воспользоваться разными способами оплаты(сделал два заказа подряд, но один оплатил электронно, а второй оплатит при получении) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 14:37 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
После изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 15:33 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4, vaban4 Клиенты - адреса у меня M-M vaban4 Имеется в виду нужно соединить таблицу Способ оплаты с таблицей Заказы связью 1-M? Учитывая вышесказанное, будет лучше, если вы сразу сделаете отдельную таблицу платежей. Даже если она де-факто будет 1:1 с заказами, платеж это отдельная сущность, и лучше сделать отдельную таблицу. Например, человек оплатил заказ, а платеж не прошел (по любой причине). Значит, клиенту придется пробовать другие методы оплаты, пока не найдется рабочий вариант. В этом случае у вас будет несколько платежей к одному заказу, но только один из них будет в состоянии Approved. vaban4 После изменений. Когда я еще жил в россии, я увольнял за меньшее :). Что на это скажет препод, думаю, несложно догадаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 17:57 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Ennor Tiegael, Тогда можно объединить напитки и пиццы в общую таблицу "блюда"? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 18:27 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Вот такая логическая модель получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 18:27 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
А вот в физической модели появились ошибки. 1) Заказа оплачиваются способами оплаты, а не наоборот. 2) Сотрудники используют транспорт, а не наоборот. 3) Клиенты размещают заказы, а не наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 18:30 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 После изменений.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 19:03 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Ennor Tiegael, авторв чем причина разделения позиций заказа на 2 таблицы? Я уже объединил пиццы и напитки, чуть выше посмотрите, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 19:19 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 А вот в физической модели появились ошибки.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 19:28 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Ennor Tiegael, Вы хотели написать "инвертировать связь Clients - Orders"? Так как со связью Clients - Addresses всё нормально, клиенты находятся по какому-то адресу. Или можно оставить так, ведь Заказы размещают клиенты или на схеме получается, что заказы размещают клиентов? У меня получается Заказы ссылается Клиенты, который ссылается на Адреса, так нельзя делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 19:38 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4 Вы хотели написать "инвертировать связь Clients - Orders"? А вот клиент у вас в данный момент может иметь ровно один адрес, в результате чего, если человек заказывает доставку не себе домой, а например себе в офис, или друзьям, у которых он в гостях (или просто он живет на два дома), то ему каждый раз придется менять свой адрес, при этом предыдущий будет затираться. Самое плохое в таком подходе то, что вы не сможете на сайте показать клиенту его адресную книгу. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 19:52 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Ennor Tiegael, И это нормально, что стрелка от Заказы показывает на Клиенты в физической модели? Также, если инвертировать Clients - Addresses то получится Addresses Located Clients в физ. модели? Это не значит, что заказы принимают клиентов и адреса находятся в клиентах? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 20:08 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4, Эээ. В таком случае, разберитесь сначала с той нотацией, которую вы используете. У вас отчетливо проблемы с чтением вашей собственной диаграммы. В концептуальной модели у вас используется Crow's Foot, а в физической - какая-то другая, не помню названия (IE, что ли?). Открываете гугель, набираете crow foot notation cheat sheet, если уж она вам так нравится, и вызубриваете ее наизусть. Делов на 5 минут от силы. Ну или распечатываете и кладете листочек рядом с собой. Лично я предпочитаю IDEF1X, но это дело вкуса. Главное поймите, что стрелки на вашей физической модели показывают не направление действия, а родителя в паре "parent-child". Похоже, для вас это неочевидно. После того, как вы начнете читать эту информацию с листа, идете по связям и прикидываете, какая из двух связанных сущностей может существовать без другой, а какая - не может. Ну или, иными словами, какая появляется в базе сначала, а какая - потом. Так понятно? Ответ на этот вопрос даст вам понимание, в какую сторону должна быть направлена связь. Надписи на связях лучше тоже переделать, потому что сейчас у вас там полный хаос, который вас только сильнее запутывает. Как вариант, можете формулировать эти глаголы так, как вы бы писали фразу на английском в формате "<Dominant Entity> <Acts On> <Child Entity>". Например:
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 20:42 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Ennor Tiegael, Я составляю всё в powerDesigner, задание такое, после составления конц. модели сгенерировать лог. и физ. модель, в model options: Концептуальная - E/R+Merise Логическая Entity/Relationship Физическая Relational ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 21:21 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Payment methods Pay Pay - complete hogwash pay это автоматически сгенерированная промежуточная таблица (связь M-M) Я хотел написать, что Заказы оплачиваются Методами оплаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 21:37 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Delivery_statuses -> have -> orders По идеи в другую сторону должна смотреть стрелка (orders сущность должна быть родителем) Но если инвертировать связь получиться, что у каждого заказа может быть несколько статусов заказа. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 21:54 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
vaban4, DeliveryStatus это справочник, это видно просто по названию. Справочники никогда не ссылаются на реальные сущности, максимум на другие справочники. Так что направление связи у вас изначально было правильное. Какой глагол в данном случае использовать, решайте сами. Предложенный мной подход хорошо работает для связей сущность-сущность, но по-видимому не очень хорош для связей справочник-сущность. В идеале, справочников на концептуальной модели быть вообще не должно. Там должны быть только сущности. Но, поскольку я никогда не делал концептуалки в PD, я не смогу вам подсказать, как из этого выкрутиться. Возможно, там есть способ объявить атрибут сущности как справочный, и тогда PD вам сгенерирует таблицу-справочник, как минимум в физической модели, а возможно что и в логической. Копайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 06:08 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
Ennor Tiegael Справочники никогда не ссылаются на реальные сущности, максимум на другие справочники. Я бы не стал так категорично утверждать. Не говоря уже о глубоко философской сути различий между "справочниками" и "реальными сущностями". ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 14:51 |
|
Слабые, сильные связи, ассоциации
|
|||
---|---|---|---|
#18+
softwarer Ennor Tiegael Справочники никогда не ссылаются на реальные сущности, максимум на другие справочники. Я бы не стал так категорично утверждать. Не говоря уже о глубоко философской сути различий между "справочниками" и "реальными сущностями". Кроме того, должен же ТС иметь что-то подходящее, когда на первой работе ему скажут "Забудьте все, чему вас учили в институте!" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2022, 16:31 |
|
|
start [/forum/topic.php?all=1&fid=32&tid=1539756]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
others: | 261ms |
total: | 416ms |
0 / 0 |