|
|
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Ребят, прощу помощи в качественном проектировании БД. Пока опишу проблему в общем, чуть позже предоставлю схему БД. Есть: Общая категория (для собак, кошек, ...) Категории кормов (сухой корм, консервы, ...) Бренд / марка / производитель Продукт / конкретный корм ... Вопрос общего характера. Пусть таблица Продукт для собак имеет определенную структуру. Но, скажем, корм (Продукт), для кошек может иметь иные характеристики (другие поля). Пока вижу два варианта: а) Разделять таблицы "Продукт_для_собак" и "Продукт_для_кошек"; б) Оставить общую таблицу "Продукт", в которой объединить поля, который необходимы для описания корма и для собак и для кошек. Если идет заполнение корма для собаки, то игнорировать поля, предназначенные для кошек и наоборот. Подскажите, пожалуйста, как в данном случае лучше поступить. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2013, 00:49 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Это настоящая задача или учебная? И чем, собственно, отличаются поля кормов для собак и для кошек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2013, 00:56 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
miksoft, А если нужно будет добавить корм для хомячков, канареек и рыбок будете создавать новые таблицы? Или проще все таки в таблице "Корм" добавить поле "Тип" (для кого). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2013, 12:17 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
miksoft, сорри. Понятно, что обращение не к Вам, а к ТС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2013, 12:20 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
AlBorИли проще все таки в таблице "Корм" добавить поле "Тип" (для кого).Если задача не учебная и ассортимент достаточно велик, то я бы предложил сделать множественную привязку кормов к животным. Например, есть корма для шиншилл и есть для кроликов, а есть такие, что и для кроликов, и для шиншилл одновременно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2013, 12:37 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_Immortal, Бренд это то же самое что и торговая марка. Советую сделать 2 таблицы: ТМ и производитель. Дело в том что продукт одной и той же ТМ производится на разных фабриках, заводах, ... Соответственно и предпочтения разные, даже если состав абсолютно одинаковый (чисто психология и ничего больше). Сделайте таблицу в которой и будете описывать характеристики продукта. Т.е. ИД_продукта, ИД_применение (для собак, для кошек). Кроме того, как уже говорили, сделайте более детальную привязку (порода, возраст, ...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2013, 14:01 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Разделять таблицы "Продукт_для_собак" и "Продукт_для_кошек";Бред. Не вздумайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 12:25 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Ребят, апаю тему, т.к. мне кажется, что без вашей редактуры я понаделаю полную ерунду :-) Пожалуйста, уделите внимание :-) miksoft,miksoftЭто настоящая задача или учебная? К сожалению, на этот раз задача реальная. Помогаю другу в разработке проекта. Так что надо отнестись серьезно. AlBor, AlBorА если нужно будет добавить корм для хомячков, канареек и рыбок будете создавать новые таблицы? Или проще все таки в таблице "Корм" добавить поле "Тип" (для кого). LSV, LSVРазделять таблицы "Продукт_для_собак" и "Продукт_для_кошек";Бред. Не вздумайте. Согласен с вами. Вполне возможно, что в будущем появятся корма/товары для других видов животных. Злой Бобр, Злой БобрБренд это то же самое что и торговая марка. Советую сделать 2 таблицы: ТМ и производитель. Я так и планировал, но "заказчик" сказал, что производителя он будет писать ручками в описании конкретного товара. А теперь по самой схеме БД. Описание : Брэнд ( ProductBrand ): список всех брэндов. Категория ( ProductCategory ): список всех категорий (прим.: сухой корм, консервы, игрушки и т.д.). В каждой категории содержится перечень брэндов. Вид животного ( AnimalType ): список всех животных (прим.: для собак, для кошек, для свинюшек и т.д.). Тип собаки ( BreedType ): градация собак по их величине (прим. мелкая порода, средняя порода, большая порода, все породы). "Заказчик" сказал, что большинство магазинов не предоставляют выборку по данному критерию (не говоря уж о конкретной породе и возрасте псины). А хотелось бы сразу выбирать корма, которые нацелены на габариты твоей псины. Товар ( Product ): список товаров. Каждый товар относится к определенному виду животного, к конкретной категории и к типу собаки (если вид животного - "для собак"). Также имеет полное и краткое описания, состав и различные картинки, представляющие данный товар. Экземпляр товара ( ProductInstance ): один и тот же корм (товар) может иметь разную фасовку. Соответственно, я выделяю вес этого "экземпляра", его стоимость и количество. Анализ корма ( ProductAnalysis ): да, звучит смешно, но так и должно называться. Каждый корм содержит определенное содержание белка, жира, клетчатки и прочего (измеряется в %, мг/кг и в чем-то еще; решил не запариваться и сделал поле ProductAnalysis.Value символьным). Замечания : Замечаний, наверное, дофига, но я пока ничего не вижу, кроме: 1. Как-то все же смущает таблица BreedType - подвешенная она какая-то. Но "заказчик" сказал, что вроде как подобных таблиц для других видов животных не будет, поэтому я решил ее так и оставить. 2. Может возникнуть вопрос о необходимости таблицы ProductInstance . Но планируется делать превью товаров. Каждое превью отображает название товара, его изображение, краткое описание и следующую таблицу: 0.34 кг 200 руб. 0.56 кг 380 руб.7.2 кг 1650 руб. отсутствует Если количество определенного экземпляра достигает 0, то напротив него ставится соответствующее уведомление. 3. Как быть: - если товар формируется для кошек, то что помещать в Product.BreedTypeID? - если в качестве товара у нас игрушка, то что помещать в ProductInstance.Weight? Разной фасовки у игрушки (одной модели) быть не может. Тупо фигачить и там и там null? Очень буду признателен, если внесете свои корректировки, т.к. это, повторюсь, очень важно! Благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2013, 17:24 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_ImmortalРебят, апаю тему, т.к. мне кажется, что без вашей редактуры я понаделаю полную ерунду :-) Пожалуйста, уделите внимание :-) ... 1) Задачи не сформулированы. 2) Тип собаки - недопустимое упрощение на первом этапе. Должны быть учтены Порода (не только собаки) и Возраст. 3) Отсутствие заболеваний - тоже серьезное упрощение. 4) Отсутствие партионного учета - рискованное упрощение. И т.д.:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2013, 20:34 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Бредятина, Бредятина1) Задачи не сформулированы. 2) Тип собаки - недопустимое упрощение на первом этапе. Должны быть учтены Порода (не только собаки) и Возраст. 3) Отсутствие заболеваний - тоже серьезное упрощение. 4) Отсутствие партионного учета - рискованное упрощение. И т.д.:) 1) Необходимо разработать информационный ресурс, который будет предоставлять каталог товаров для разных видов животных. Необходимо отображать категории товаров (сухие корма, консервы, игрушки и т.д.); брэнды, относящиеся к конкретным категориям; приводить детализированную информацию по конкретному товару. Выводить по нему имеющиеся "экземпляры" с соответствующими ценами и весом. Реализовать фильтрацию по: - Породе и Возрасту собаки (см. п.2) внутри конкретной категории/внутри конкретного бренда. 2) Дело в том, что Породу учитывать не надо - представленные корма на Породу ориентированы не будут. Либо под Породой можно подразумевать величину собаки (как я на данном этапе и поступаю). А вот с Возрастом Вы правы - я уточнил. Т.о. могут быть следующие варианты: - "корм для щенков мелких пород"; - "корм для щенков крупных пород"; - "корм для взрослых собак мелких пород"; - "корм для щенков собак всех пород"; - и т.п. 3) Эм... А вроде никто болеть и собирался? :) Или Вы это сразу прикидываете для всяких там витаминок и лекарственных средств? Уточню. 4) Ну а это, как мне сказали, совершенно ни к чему. На данном этапе все ограничивается представлением каталога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2013, 21:56 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_Immortal1) Необходимо разработать информационный ресурс, который будет предоставлять каталог товаров для разных видов животных. Почему это необходимо??? Для чего нужен этот ресурс? The_ImmortalНеобходимо отображать категории товаров (сухие корма, консервы, игрушки и т.д.); брэнды, относящиеся к конкретным категориям; приводить детализированную информацию по конкретному товару. Выводить по нему имеющиеся "экземпляры" с соответствующими ценами и весом. Зачем??? The_ImmortalРеализовать фильтрацию по: - Породе и Возрасту собаки (см. п.2) внутри конкретной категории/внутри конкретного бренда. Это вообще дело пользователей. Пусть фильтруют как хотят. The_Immortal2) Дело в том, что Породу учитывать не надо - представленные корма на Породу ориентированы не будут. Либо под Породой можно подразумевать величину собаки (как я на данном этапе и поступаю). А вот с Возрастом Вы правы - я уточнил. Правильно сказать: корма на Породу ориентированы никогда не будут по решению заказчика . The_ImmortalТ.о. могут быть следующие варианты: - "корм для щенков мелких пород"; - "корм для щенков крупных пород"; - "корм для взрослых собак мелких пород"; - "корм для щенков собак всех пород"; - и т.п. Это требование заказчика. Поэтому не могут, а должны:) The_Immortal3) Эм... А вроде никто болеть и собирался? :) Или Вы это сразу прикидываете для всяких там витаминок и лекарственных средств? Уточню. Нет. Есть не все можно. Но если у Вас даже породы не должны учитываться:)... The_Immortal4) Ну а это, как мне сказали, совершенно ни к чему. На данном этапе все ограничивается представлением каталога. Это Вы хорошо сказали - "на данном этапе":) Про "представление каталога" так ничего и непонятно:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2013, 23:15 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Бредятина , прошу простить мой нечеткий слог! :-) Попытаюсь исправиться. БредятинаThe_Immortal1) Необходимо разработать информационный ресурс, который будет предоставлять каталог товаров для разных видов животных. Почему это необходимо??? Для чего нужен этот ресурс? The_ImmortalНеобходимо отображать категории товаров (сухие корма, консервы, игрушки и т.д.); брэнды, относящиеся к конкретным категориям; приводить детализированную информацию по конкретному товару. Выводить по нему имеющиеся "экземпляры" с соответствующими ценами и весом. Зачем??? Пользователь заходит на сайт, любуется ассортиментом, что-то из него выбирает. Звонит в магазин по указанному номеру, сообщает названием товара, резервирует его (вот только не спрашивайте как именно:-)) и в течение определенного периода выкупает данный товар. Ну либо пользователь просто отмечает себе какой-то товар (в голове) и направляется в магазин. Назовем данный ресурс "витриной" :-) Пожалуй, не очень замудренная система, но реализовать хотя бы ее :-) БредятинаThe_ImmortalРеализовать фильтрацию по: - Породе и Возрасту собаки (см. п.2) внутри конкретной категории/внутри конкретного бренда. Это вообще дело пользователей. Пусть фильтруют как хотят. Пожалуй :-) БредятинаThe_Immortal2) Дело в том, что Породу учитывать не надо - представленные корма на Породу ориентированы не будут. Либо под Породой можно подразумевать величину собаки (как я на данном этапе и поступаю). А вот с Возрастом Вы правы - я уточнил. Правильно сказать: корма на Породу ориентированы никогда не будут по решению заказчика . Может и так, но я сделал небольшой экскурс по данной предметной области и в основном так оно и есть: корма на Породу не ориентируются. БредятинаThe_ImmortalТ.о. могут быть следующие варианты: - "корм для щенков мелких пород"; - "корм для щенков крупных пород"; - "корм для взрослых собак мелких пород"; - "корм для щенков собак всех пород"; - и т.п. Это требование заказчика. Поэтому не могут, а должны:) Это я в качестве примерчика, чтобы хоть что-то было понятно :-) БредятинаThe_Immortal3) Эм... А вроде никто болеть и собирался? :) Или Вы это сразу прикидываете для всяких там витаминок и лекарственных средств? Уточню. Нет. Есть не все можно. Но если у Вас даже породы не должны учитываться:)... На самом деле Вы подали замечательную идею а мне больше проблем для заказчика: теперь планируется представлять еще витамины и ветеринарные корма - а вот они-то как раз на заболевания и ориентированы :-) Насчет пород: и тут заказчик передумал - все благодаря Вам! :-) Теперь у нас пользователь может не знать, а взрослая ли у него собака или все-таки старая? И вообще какой она "породы" (габаритов) - средняя или крупная порода? Для таких непросвещенных хозяев система будет предлагать ввести возраст собаки (в мес./годах) и породу ("овчарка немецкая"). Далее в зависимости от породы ("овчарка немецкая") предлагается ее "габарит" (крупная порода), а в зависимости от ее текущего возраста (7 лет) предлагается ее отнести к взрослым псам (ориентируясь на таблицу по средне продолжительности жизни по определенным породам). Такая вставочка легкой ЭС :-) Ну и после этого корма фильтруются по сформированным системой критериям. Вот... БредятинаThe_Immortal4) Ну а это, как мне сказали, совершенно ни к чему. На данном этапе все ограничивается представлением каталога. Это Вы хорошо сказали - "на данном этапе":) Про "представление каталога" так ничего и непонятно:) Надеюсь, сейчас хоть немного что-то прояснилось. P.S. Походу придется все переделывать нафег. Но это, наверное, нормально... :-) P.P.S. Бредятина , если не сложно, то может быть будут какие-нибудь рекомендации по поводу текущей схемы БД в плане оптимизации? Я бы ее закончил, а потом бы перешел к версии 1.01 :-) В частности, может быть стоит таблицу AnimalType присоединить к ProductCategory? Как-то она мне в Product не нравится... Правда, аргументировать не могу :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2013, 00:41 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_ImmortalПользователь заходит на сайт, Если уж ограничивать задачу на "первом этапе", то вот этого было бы более, чем достаточно. Реализуйте для начала именно эту задачу. The_Immortalлюбуется ассортиментом, Еще два новых и важных понятия. Вы говорите о том, что в БД должны храниться изображения товаров (не буквами же любоваться). Так же Вы говорите о том, что это именно те товары, которые есть в продаже, а вовсе не теоретический каталог? The_Immortalчто-то из него выбирает. Звонит в магазин по указанному номеру, сообщает названием товара, резервирует его (вот только не спрашивайте как именно:-)) и в течение определенного периода выкупает данный товар. Ну либо пользователь просто отмечает себе какой-то товар (в голове) и направляется в магазин. Назовем данный ресурс "витриной" :-) Пожалуй, не очень замудренная система, но реализовать хотя бы ее :-) Я считаю, что уже можно браться за другой проект, поскольку вполне достаточно хотя бы мысленно реализовать:) The_Immortalтеперь планируется представлять еще витамины и ветеринарные корма - а вот они-то как раз на заболевания и ориентированы :-) А ошейники, поводки и другую "одежду" значит, пока, не планируется?:) На первом этапе:) The_ImmortalТеперь у нас пользователь может не знать, а взрослая ли у него собака или все-таки старая? И вообще какой она "породы" (габаритов) - средняя или крупная порода? Для таких непросвещенных хозяев система будет предлагать ввести возраст собаки (в мес./годах) и породу ("овчарка немецкая"). Совершенно очевидно, что пользователь не сможет ввести то, чего он не знает:)... Начните, все-таки, с терминов и определений предметной области. The_ImmortalДалее... Надеюсь, сейчас хоть немного что-то прояснилось. Это только Вы знаете, прояснилось или нет:) The_Immortalесли не сложно, то может быть будут какие-нибудь рекомендации по поводу текущей схемы БД в плане оптимизации? Рано говорить о БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2013, 01:19 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Бредятина , ух... :-) БредятинаThe_ImmortalПользователь заходит на сайт, Если уж ограничивать задачу на "первом этапе", то вот этого было бы более, чем достаточно. Реализуйте для начала именно эту задачу. "Заходит" != "авторизируется". У него нет личного кабинета, если Вы на это намекаете. Так что эта задача реализована :-) БредятинаThe_Immortalлюбуется ассортиментом, Вы говорите о том, что в БД должны храниться изображения товаров (не буквами же любоваться). Разумеется. Для этого у меня и предназначены поля Image(n) в таблице Product - там у меня сидят эти самые изображения :-) БредятинаТак же Вы говорите о том, что это именно те товары, которые есть в продаже, а вовсе не теоретический каталог? Товары, представленные на сайте = товары, которые есть в продаже. В случае отсутствия какого либо товара, напротив него ставится соответствующая пометочка, о которой я выше писал: The_ImmortalЕсли количество определенного экземпляра достигает 0, то напротив него ставится соответствующее уведомление. БредятинаThe_Immortalтеперь планируется представлять еще витамины и ветеринарные корма - а вот они-то как раз на заболевания и ориентированы :-) А ошейники, поводки и другую "одежду" значит, пока, не планируется?:) На первом этапе:) Пока остановились на следующих категориях: сухие корма, консервы, игрушки, витамины и ветеринарные корма. У меня тут неслабая дилеммка организовалась: заказчик уже требует запускать проект, с другой стороны одни дополнения и намечаются, которые следует учитывать. Так что в этом плане все. Ничего более не будет. БредятинаThe_ImmortalТеперь у нас пользователь может не знать, а взрослая ли у него собака или все-таки старая? И вообще какой она "породы" (габаритов) - средняя или крупная порода? Для таких непросвещенных хозяев система будет предлагать ввести возраст собаки (в мес./годах) и породу ("овчарка немецкая"). Совершенно очевидно, что пользователь не сможет ввести то, чего он не знает:)... Начните, все-таки, с терминов и определений предметной области. Да уж, тут действительно надо разобраться. БредятинаРано говорить о БД. Плохо дело :-( Искренне благодарю за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2013, 01:47 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_Immortal"Заходит" != "авторизируется". У него нет личного кабинета, если Вы на это намекаете. Так что эта задача реализована :-) Реализовано сразу несколько задач: не быть клиентом, не бронировать товар, не оплачивать товар и т.п.:) The_ImmortalРазумеется. Для этого у меня и предназначены поля Image(n) в таблице Product - там у меня сидят эти самые изображения :-) Там ли они находятся, вот в чем вопрос:) После того, как разберетесь с концепциями предметной области, к этому можно вернуться. The_ImmortalТовары, представленные на сайте = товары, которые есть в продаже. В случае отсутствия какого либо товара, напротив него ставится соответствующая пометочка, о которой я выше писал: Если количество определенного экземпляра достигает 0, то напротив него ставится соответствующее уведомление. Выше я перечислял решенные задачи. Это очередная: не учитывать движение товара:) The_ImmortalПока остановились на следующих категориях: сухие корма, консервы, игрушки, витамины и ветеринарные корма. У меня тут неслабая дилеммка организовалась: заказчик уже требует запускать проект, с другой стороны одни дополнения и намечаются, которые следует учитывать. Так что в этом плане все. Ничего более не будет. Вид товара не должен никак влиять на функционирование системы. Не имеет значения. следовательно, это все или не все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2013, 11:12 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Бредятина , БредятинаThe_Immortal"Заходит" != "авторизируется". У него нет личного кабинета, если Вы на это намекаете. Так что эта задача реализована :-) Реализовано сразу несколько задач: не быть клиентом, не бронировать товар, не оплачивать товар и т.п.:) The_ImmortalТовары, представленные на сайте = товары, которые есть в продаже. В случае отсутствия какого либо товара, напротив него ставится соответствующая пометочка, о которой я выше писал: Если количество определенного экземпляра достигает 0, то напротив него ставится соответствующее уведомление. Выше я перечислял решенные задачи. Это очередная: не учитывать движение товара:) Если в таком ракурсе, то да :-) БредятинаThe_ImmortalРазумеется. Для этого у меня и предназначены поля Image(n) в таблице Product - там у меня сидят эти самые изображения :-) Там ли они находятся, вот в чем вопрос:) После того, как разберетесь с концепциями предметной области, к этому можно вернуться. Ага, именно там :-) Varbinary. БредятинаThe_ImmortalПока остановились на следующих категориях: сухие корма, консервы, игрушки, витамины и ветеринарные корма. У меня тут неслабая дилеммка организовалась: заказчик уже требует запускать проект, с другой стороны одни дополнения и намечаются, которые следует учитывать. Так что в этом плане все. Ничего более не будет. Вид товара не должен никак влиять на функционирование системы. Не имеет значения. следовательно, это все или не все. Да, вполне логично. Но как быть с теми же заболеваниями? Это расширение, необходимое для внедрения очередного вида товара - витаминок. Невозможно (по крайней мере в рамках нашей задачи) предугадать все виды товаров, которые будут использоваться в будущем, а также соответствующие им атрибуты. Каким образом организовать тут универсальность? Вот это меня ставит в тупик (в том числе). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 15:54 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_ImmortalЕсли в таком ракурсе, то да :-) Плохо. И полностью противоречит последнему, беспокоящему Вас, вопросу:) The_ImmortalАга, именно там :-) Varbinary. Зря Вы так уверены. Смысл того, что Вы называете "экземпляром" (неудачный термин, больше подходит "упаковка", например) может измениться. В частности, может быть разный вид упаковки. The_ImmortalДа, вполне логично. Но как быть с теми же заболеваниями? Это расширение, необходимое для внедрения очередного вида товара - витаминок. Нет. Поскольку связь с семантикой "не рекомендуется" может использоваться как раз и не для витаминок:) The_ImmortalНевозможно (по крайней мере в рамках нашей задачи) предугадать все виды товаров, которые будут использоваться в будущем, а также соответствующие им атрибуты. Каким образом организовать тут универсальность? Вот это меня ставит в тупик (в том числе). Тупик - полезная штука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 16:19 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Ребят, никто не в курсе - на форуме кто-то проектирует БД для плохо формализованных задач (типа моей) за деньги , а то я уже сыт :-) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 17:53 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_ImmortalРебят, никто не в курсе - на форуме кто-то проектирует БД для плохо формализованных задач (типа моей) за деньги , а то я уже сыт :-) ?:) нормальная у вас задача... просто опыта не фатат... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 17:55 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Chop, опыт тут не причем. Соображаловка не та. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 18:03 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_ImmortalChop, опыт тут не причем. Соображаловка не та.я высказался мягче :) здря вы так плохо о себе говорите :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 18:38 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_Immortalна форуме кто-то проектирует БД для плохо формализованных задачТак вообще никто не делает. Сначала задачу либо формализуют, либо формализуют с некоторым приближением к реальности. Т.е. решают "вот это у нас может быть, вот это - не может". В простых случаях это может происходить неявно, но обязательно должно происходить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 18:52 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Тогда я не знаю, что дальше делать...) Ладно, хватит ныть, пойду думать дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 18:58 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_ImmortalРебят, никто не в курсе - на форуме кто-то проектирует БД для плохо формализованных задач (типа моей) за деньги , а то я уже сыт :-) ? Ну есть уже работающее решение для подобной задачи. И уверен, что не у меня одного. Только вот боюсь, что сумма вас не обрадует :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 19:08 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_Immortalпойду думать дальше.Думать - это хорошо :) Я бы посоветовал не ломиться сразу рисовать таблицы, а обдумать предметную область. В том числе проработать сценарии поведения пользователей, как внешних (покупателей), так и внутренних (сотрудников). Углубляться в детализацию данных я бы, наоборот, не советовал. Если нет товаров, специфичных для конкретных пород животных, то не надо оперировать породами. Не забывайте, что эти данные еще нужно ввести, а количество положительных комбинаций порода-товар вполне может достигать многих тысяч (а то и миллионов) при большом ассортименте. Кроме того, порода - вещь не всегда точная. А если у посетителя смесь сенбернара и чихуа-хуа? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 19:08 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
> БД для плохо формализованных задач У вас нормально формализуемая задача. Вспомните, чему вас учили в школе. Биология была? Значит, имеете представление о классификации живых организмов, их фазах развития и пищевых цепочках, т. е. основных фрагментах задачи. Единственная сложность для вас - то, что элементы пищевой цепочки могут быть не только искусственными, но и естественными. Мыши - удав. Мотыль - рыба. Задача, может, и сложновата для начинающего, зато с предметной областью все достаточно просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 20:09 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_Immortal, Тебе надо в первую очередь прочитать про отношение подкатегории, оно же реляционное наследование, и активно его применять тут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2013, 06:57 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Сделайте две таблицы. В первую включите характеристики товаров, которые будут одинаковыми для большинства товаров (бренд, категория, упаковка, вес (?), цена и т.д..). Во вторую, - уникальные характеристики товара. Т.е. вторая таблица будет содержать три поля: ключ (для связи с первой таблицей), наименование характеристики (например: возраст собаки, "порода", и т.п.), третья - значение характеристики (щенок, молодая, беременная, старая, мелкая, крупная, средняя, гигант, универсальный и т.п.). Конечно, нужна будет таблица-справочник, которая содержит наименование характеристики и значение характеристики. Запросы делать убибикаешься, но можно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2013, 21:04 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Ребят, у меня пока такой быстрый и, наверное, глупый вопрос :-) Пусть по-прежнему имеется связь: Категория и Брэнд. У меня эта связь была отражена вот таким образом: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2013, 18:56 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Знакомый, взглянув на эту связь, поинтересовался. А к чему, собственно, разделять Брэнд и Категорию? Почему бы название Брэнда не включить в Категорию? (см. скриншот). На этот вопрос я завис... Попытался объяснить, что отдельные сущности должны всегда как-то обособляться. - Ну а чисто технически в чем тут преимущество? Ведь даже запрос на выборку брэндов в той или иной категории будет проще: не надо связывать таблицы. - спрашивает он. На это я ответил, что, наверное, все дело в экономии объема данных. Ведь в таком случае, у нас будет дублироваться один и тот же бренд (название брэнда - набор символов), когда разные категории будут включать один и тот же брэнд. В случае связанных таблиц мы будем иметь дело с числовым значением (Id), сэкономив при этом. Его ответ явно не удовлетворил. Он сказал, что по его мнению, разделять таблицы имеет тогда, когда у таблиц достаточное число (правда, какое именно число - он не уточнил) атрибутов - вот тогда экономия будет ощутима. Но не в моем случае. Вот собственно вопрос: а как быть в таких случаях? :-) Если я прав, то почему? В общем, вопрос об основах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2013, 18:56 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_Immortal, А какое отношение вообще имеет бренд к категории? На мой взгляд это отдельные, независимые свойства товара. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2013, 21:29 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
miksoft, хм... Да, согласен. Учту :-) Но на самом деле не в этом вопрос был. Я спрашивал в общем. Какой же пример привести... А, вот. Тупо: Работник Id Фамилия ДолжностьId1 Иванов 12 Петров 13 Сидоров 2... ... ... Должность Id НазваниеДолжности1 психиатр2 психолог... ... Гипотетически предположим подобную структуру (понятно, что должность без оклада и прочего не бывает, но все же). В таком случае, имеет ли смысл выделять Должности в отдельную таблицу? Если да, то почему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2013, 22:15 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_Immortal, У сущности "работник" и сущности "должность" явно слишком разные атрибуты (свойства), чтобы хранить их в одной таблице. По крайней мере, если не увлекаться EAV-ами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2013, 22:23 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
miksoft , а если, скажем, у второй таблицы (от которой идет связь "1 ко многим" помимо Id всего лишь один атрибут. Названием, скажем. Как в таком случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2013, 22:36 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
The_ImmortalВ таком случае, имеет ли смысл выделять Должности в отдельную таблицу? Если да, то почему ?Если в должности работника более нет ничего, кроме её названия, то можете не выделять. Правда, ситуация слишком гипотетическая. Как правило, должность подразумевает дополнительные атрибуты, которые закреплены именно за должностью, а не за работником. Но самое главное, удаляя(увольняя) работника, вы также теряете информацию не только о его должности, но, возможно, о должности, как таковой, вообще, если эту должность имел только этот работник. Это классическая аномалия удаления, о которой пишут практически в любом учебнике по базам данных. Смысл в том, что должность независима от человека, она может существовать, а работника её занимающий отсутствовать. И это ещё не упоминается работа по совместительству, история должностей(карьера) работника, штатное расписания и несть других причин, по каких должность выделяется в отдельную сущность. Хотя аномалия удаления уже более чем веская причина для такого выделения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2013, 22:47 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
ChA , большое спасибо за разъяснения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2013, 22:54 |
|
||
|
Каталог кормов для животных
|
|||
|---|---|---|---|
|
#18+
Итак, another try :-) Задача: Необходимо разработать информационный ресурс, который будет предоставлять каталог товаров для разных видов животных. Необходимо отображать категории товаров (сухие корма, консервы и т.д.); брэнды, относящиеся к конкретным категориям; приводить детализированную информацию по конкретному товару. Выводить по нему имеющиеся "экземпляры" (упаковки) с соответствующими ценами и весом, а также уточнять их наличие. Осуществлять фильтрацию товаров по определенным критериям. Заказ/резервирование товаров реализовывать не нужно. Данный ресурс имеет одинаковый публичный доступ для всех посетителей, т.о. у пользователя отсутствует "личный кабинет". Описание схемы БД: Товар ( Product ): список товаров. Каждый товар относится: - к определенному виду животного (табл. AnimalType ); - к конкретной категории ( Product.ProductCategoryID ); - в случае если вид животного "для собак", то к типу породы ( Product.BreedTypeID ). Товар также имеет: - полное описание ( Product.DecriptionFull ); - краткое описание ( Product.DescriptionShort ); - состав ( Product.Composition ); - различные изображения ( Product.Image1 , ...), представляющие данный товар. В случае, если один и тот же товар имеет разные упаковки с разным оформлением, то изображение будет выбираться для одной упаковки и представлять всю "линейку" данного товара. У конкретного товара могут быть разные "экземпляры" (упаковки) - табл. ProductInstance . Для конкретного товара может быть приведен так называемый анализ состава - табл. ProductAnalysis . Анализ корма ( ProductAnalysis ): каждый корм содержит определенное содержание белка, жира, клетчатки и прочего ( ProductAnalysis.Title ). Значения того или иного параметра измеряются в %, мг/кг ( ProductAnalysis.Value ). Экземпляр товара ( ProductInstance ): один и тот же товар (корм, к примеру) может иметь разную фасовку. Соответственно, выделяю вес ( ProductInstance.Weight ) этого "экземпляра" (упаковки), его стоимость ( ProductInstance.Price ) и количество ( ProductInstance.Quantity ) в отдельную таблицу. Вид животного ( AnimalType ): список всех видов животных. Прим.: "для собак", "для кошек" и т.д. ( AnimalType.Title ). Категория ( ProductCategory ): список всех категорий. Прим.: "сухой корм", "консервы" и т.д. ( ProductCategory.Title ). Каждая категория предназначена для определенного вида животного (ProductCategory.AnimalTypeID). Брэнд ( ProductBrand ): список всех брэндов. Прим.: "Acana", "Eukanuba" и т.д. ( ProductBrand.Title ). Тип породы ( BreedType ): включает: - величину/размер породы. Прим.: "мелкая порода", "средняя порода", "крупная порода" ( BreedType.Size ); - возраст питомца. Прим.: "щенок", "взрослая", "старая" ( BreedType.Age ). На основании этих 2ух параметров и будет происходить фильтрация кормов, т.к. это основные характеристики корма. Примеры кормов: - "корм для щенков мелких пород"; - "корм для щенков крупных пород"; - "корм для взрослых собак мелких пород"; - "корм для щенков собак всех пород"; - и т.д. Вопросы: 1. Смущает связь "1 к 1": ProductAnalysis и Product . Выделил ProductAnalysis в отдельную таблицу для удобства восприятия. Но, наверное, имеет смысл все оттуда включить в Product , да? 2. С таблицей AnimalType тоже не уверен. Изначально она у меня сидела непосредственно в Product , но мне показалось, что это как-то излишне. Теперь решил ее присобачить к ProductCategory , аргументировав это тем, что "каждая категория предназначена для определенного вида животного". Не знаю насколько это правильно. К примеру, "для собак" и "для кошек" содержат совершенно идентичный список категорий. 3. Желаю очень сильно критики по остальному :-) Благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 02:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1541372]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
110ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 431ms |

| 0 / 0 |
