Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Избыточность, нормализация, правильная структура / 4 сообщений из 4, страница 1 из 1
12.09.2011, 21:43
    #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
12.09.2011, 22:59
    #37437124
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Избыточность, нормализация, правильная структура
Choo Joy 1. Стоит ли для каждого типа записей делать отдельную таблицу, как я сделал (videos и articles)?в поиск по форуму на тему реализация наследования. Есть доводы за и против.
Choo Joy 2. Стоит ли в записях хранить community_id?Нет. Любая денормализация это вынужденная мера
Choo Joy 3. Может быть есть смысл сделать таблицу типовДа
авторможно ли в этой таблице типов хранить имя таблицы, в которой находятся записи этого типа?Нет. Нельзя смешивать данные (в записях) и метаданные (имя таблиц)
...
Рейтинг: 0 / 0
12.09.2011, 23:09
    #37437130
Choo Joy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Избыточность, нормализация, правильная структура
авторНет. Нельзя смешивать данные (в записях) и метаданные (имя таблиц)
Да, я так и думал, но как тогда связать эту таблицу типов записей с соответствующей таблицей? На уровне приложения? Т.е. явно обозначить соответствия между типом и таблицей?
...
Рейтинг: 0 / 0
13.09.2011, 18:30
    #37438757
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Избыточность, нормализация, правильная структура
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Избыточность, нормализация, правильная структура / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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