powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Простой вопрос по проектированию
10 сообщений из 10, страница 1 из 1
Простой вопрос по проектированию
    #38898178
scion4581
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Нужно опытное мнение сообщества по поводу простого вопроса по проектированию.

Представим есть таблицы - сущности

Product
Category
Subcategory

Как правильней и лучше с точки зрения проектирования создавать связи

Product
product_id
name
category_id
subcategory_id

Category
category_id
name

Subcategory
subcategory_id
name
category_id

или связь продуктов с категориями через подкатегории, так как у каждой подкатегории есть категория

Product
product_id
name
subcategory_id

Category
category_id
name

Subcategory
subcategory_id
name
category_id

Какой вариант предпочтительней? Всегда делал первый но тут меня начинают поправлять мол, избыточная связь получается у продукта с категорией, так как у подкатегории все равно есть связь с категорией.

Какое ваше мнение?

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

Product
product_id
name
category_id
subcategory_id

если подкатегория зависит от категории, то category_id в таблице продуктов лишняя.
...
Рейтинг: 0 / 0
Простой вопрос по проектированию
    #38898222
yugl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Категории и подкатегории хочется объединить в одну таблицу, а в продуктах оставить одну ссылку на подкатегорию (категорию самого низкого уровня).
...
Рейтинг: 0 / 0
Простой вопрос по проектированию
    #38898272
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yuglКатегории и подкатегории хочется объединить в одну таблицу, а в продуктах
оставить одну ссылку на подкатегорию (категорию самого низкого уровня).
В одну таблицу это правильно, но ни к чему ограничивать себя ссылкой только на категорию
низшего уровня. Рано или поздно найдётся товар, который не получится отнести ни к одной из
них.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Простой вопрос по проектированию
    #38898274
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

всегда есть категория ПРОЧЕЕ
...
Рейтинг: 0 / 0
Простой вопрос по проектированию
    #38898417
scion4581
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
объединить в одну таблицу это конечно очень хороший и экономный вариант, а насчет вот если не выбрана подкатегория или нужно

фильтровать какие то продукты только по категориии, обращаю внимание что нельзя поставить прочее , тогда смысл есть оба

держать в одной таблице?
...
Рейтинг: 0 / 0
Простой вопрос по проектированию
    #38898423
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Категории и субкатегории в любом случае случае хорошо держать в виде дерева в одной таблице - тогда проблем с назначением категории без субкатегории нет как класса.
...
Рейтинг: 0 / 0
Простой вопрос по проектированию
    #38898424
scion4581
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин, у меня уже была тут тема о фильтрах, вы тоже участвовали.

я имею ввиду следующую ситуацию: допустим заказы имеют категорию и подкатегорию, а есть фильтры по этим заказам, они

имеют множественный выбор, не суть не в этом, а в том что в фильтре можно указать только например категорию, получается чтобы

получить все заказы по этой категории нужно получить эту категорию, так как ее нет а есть подкатегория в заказе, то нужно

лишнее объединение заказов с категориями (где категории и подкатегории в одной таблице), потому что категории в заказе нет!

Суть я конечно понял и вы все тут правильно сказали. Я просто вот такой "аномальный" случай рассматриваю для себя
...
Рейтинг: 0 / 0
Простой вопрос по проектированию
    #38898435
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scion4581,

Ну да, "лишнее" соединение. Соединение по ключу - дешевая операция, что их бояться-то?

И опять же, если Вам так позарез не хочется делать это лишнее соединение - да, можно пойти на сознательную денормализацию и вкрутить категорию в заказ. Главное при этом понимать, чем Вы жертвуете ради производительности.
...
Рейтинг: 0 / 0
Простой вопрос по проектированию
    #38898446
scion4581
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял. Всем просто огромное человеческое спасибо!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Простой вопрос по проектированию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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