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

start [/forum/topic.php?fid=32&fpage=57&tid=1542029]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
281ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 562ms |

| 0 / 0 |
