powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Каталог кормов для животных
13 сообщений из 38, страница 2 из 2
Каталог кормов для животных
    #38144074
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> БД для плохо формализованных задач

У вас нормально формализуемая задача. Вспомните, чему вас учили в школе. Биология была? Значит, имеете представление о классификации живых организмов, их фазах развития и пищевых цепочках, т. е. основных фрагментах задачи.

Единственная сложность для вас - то, что элементы пищевой цепочки могут быть не только искусственными, но и естественными. Мыши - удав. Мотыль - рыба.

Задача, может, и сложновата для начинающего, зато с предметной областью все достаточно просто.
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38144248
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Immortal,

Тебе надо в первую очередь прочитать про отношение подкатегории, оно же реляционное наследование, и активно его применять тут.
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38144637
repka64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделайте две таблицы. В первую включите характеристики товаров, которые будут одинаковыми для большинства товаров (бренд, категория, упаковка, вес (?), цена и т.д..). Во вторую, - уникальные характеристики товара. Т.е. вторая таблица будет содержать три поля: ключ (для связи с первой таблицей), наименование характеристики (например: возраст собаки, "порода", и т.п.), третья - значение характеристики (щенок, молодая, беременная, старая, мелкая, крупная, средняя, гигант, универсальный и т.п.). Конечно, нужна будет таблица-справочник, которая содержит наименование характеристики и значение характеристики. Запросы делать убибикаешься, но можно...
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38145222
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, у меня пока такой быстрый и, наверное, глупый вопрос :-)

Пусть по-прежнему имеется связь: Категория и Брэнд.

У меня эта связь была отражена вот таким образом:
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38145224
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знакомый, взглянув на эту связь, поинтересовался. А к чему, собственно, разделять Брэнд и Категорию? Почему бы название Брэнда не включить в Категорию? (см. скриншот).
На этот вопрос я завис... Попытался объяснить, что отдельные сущности должны всегда как-то обособляться.

- Ну а чисто технически в чем тут преимущество? Ведь даже запрос на выборку брэндов в той или иной категории будет проще: не надо связывать таблицы. - спрашивает он.

На это я ответил, что, наверное, все дело в экономии объема данных. Ведь в таком случае, у нас будет дублироваться один и тот же бренд (название брэнда - набор символов), когда разные категории будут включать один и тот же брэнд. В случае связанных таблиц мы будем иметь дело с числовым значением (Id), сэкономив при этом.

Его ответ явно не удовлетворил. Он сказал, что по его мнению, разделять таблицы имеет тогда, когда у таблиц достаточное число (правда, какое именно число - он не уточнил) атрибутов - вот тогда экономия будет ощутима. Но не в моем случае.

Вот собственно вопрос: а как быть в таких случаях? :-) Если я прав, то почему?


В общем, вопрос об основах...
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38145322
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Immortal,

А какое отношение вообще имеет бренд к категории?
На мой взгляд это отдельные, независимые свойства товара.
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38145346
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, хм... Да, согласен. Учту :-) Но на самом деле не в этом вопрос был. Я спрашивал в общем.

Какой же пример привести...

А, вот. Тупо:

Работник
Id Фамилия ДолжностьId1 Иванов 12 Петров 13 Сидоров 2... ... ...

Должность
Id НазваниеДолжности1 психиатр2 психолог... ...

Гипотетически предположим подобную структуру (понятно, что должность без оклада и прочего не бывает, но все же). В таком случае, имеет ли смысл выделять Должности в отдельную таблицу? Если да, то почему ?
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38145350
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Immortal,

У сущности "работник" и сущности "должность" явно слишком разные атрибуты (свойства), чтобы хранить их в одной таблице. По крайней мере, если не увлекаться EAV-ами.
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38145357
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft , а если, скажем, у второй таблицы (от которой идет связь "1 ко многим" помимо Id всего лишь один атрибут. Названием, скажем.

Как в таком случае?
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38145363
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_ImmortalВ таком случае, имеет ли смысл выделять Должности в отдельную таблицу? Если да, то почему ?Если в должности работника более нет ничего, кроме её названия, то можете не выделять. Правда, ситуация слишком гипотетическая. Как правило, должность подразумевает дополнительные атрибуты, которые закреплены именно за должностью, а не за работником. Но самое главное, удаляя(увольняя) работника, вы также теряете информацию не только о его должности, но, возможно, о должности, как таковой, вообще, если эту должность имел только этот работник. Это классическая аномалия удаления, о которой пишут практически в любом учебнике по базам данных. Смысл в том, что должность независима от человека, она может существовать, а работника её занимающий отсутствовать.
И это ещё не упоминается работа по совместительству, история должностей(карьера) работника, штатное расписания и несть других причин, по каких должность выделяется в отдельную сущность. Хотя аномалия удаления уже более чем веская причина для такого выделения.
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38145364
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA , большое спасибо за разъяснения
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38145440
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак, 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. Желаю очень сильно критики по остальному :-)


Благодарю!
...
Рейтинг: 0 / 0
Каталог кормов для животных
    #38149683
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anyone?.. :-(
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Каталог кормов для животных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]