powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Избыточность, нормализация, правильная структура
4 сообщений из 4, страница 1 из 1
Избыточность, нормализация, правильная структура
    #37437062
Choo Joy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первая сущность - сообщество. У сообщества может быть 2 типа записей (например, "видео" и "статья", в зависимости от которых незначительно различается набор полей. То есть у статьи мы храним только заголовок и тело, а у видео ещё ссылку на видео-хостинг. У каждого типа записей свой набор рубрик - это ещё одна сущность. Каждая запись относится к какой-либо рубрике.

Мой набросок выглядит следующим образом:

communities
---------------
id
name

rubrics
---------------
id
name
community_id
type (здесь enum с вариантами "video" и "article")

articles
---------------
id
name
body
community_id
rubric_id

videos
---------------
id
name
body
video_url
community_id
rubric_id

Мои сомнения таковы:
1. Стоит ли для каждого типа записей делать отдельную таблицу, как я сделал (videos и articles)?
2. Стоит ли в записях хранить community_id? Здесь получается избыточность, потому что мы по рубрике можем выяснить id сообщества, но более сложным запросом.
3. Может быть есть смысл сделать таблицу типов (Видео, Статьи, потом могут быть ещё) и тогда вместо поля type в rubrics будет внешний ключ на соответствующий тип? Если да, то можно ли в этой таблице типов хранить имя таблицы, в которой находятся записи этого типа?
...
Рейтинг: 0 / 0
Избыточность, нормализация, правильная структура
    #37437124
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Choo Joy 1. Стоит ли для каждого типа записей делать отдельную таблицу, как я сделал (videos и articles)?в поиск по форуму на тему реализация наследования. Есть доводы за и против.
Choo Joy 2. Стоит ли в записях хранить community_id?Нет. Любая денормализация это вынужденная мера
Choo Joy 3. Может быть есть смысл сделать таблицу типовДа
авторможно ли в этой таблице типов хранить имя таблицы, в которой находятся записи этого типа?Нет. Нельзя смешивать данные (в записях) и метаданные (имя таблиц)
...
Рейтинг: 0 / 0
Избыточность, нормализация, правильная структура
    #37437130
Choo Joy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНет. Нельзя смешивать данные (в записях) и метаданные (имя таблиц)
Да, я так и думал, но как тогда связать эту таблицу типов записей с соответствующей таблицей? На уровне приложения? Т.е. явно обозначить соответствия между типом и таблицей?
...
Рейтинг: 0 / 0
Избыточность, нормализация, правильная структура
    #37438757
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Избыточность, нормализация, правильная структура
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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