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

start [/forum/topic.php?fid=32&tablet=1&tid=1542029]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 458ms |

| 0 / 0 |
