Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Деревья] вынести parent_id=0 в отдельную таблицу 
V
    Опции темы
patap
Дата 7.4.2011, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 3
Всего: 40



Всем привет. 
Я на ранней стадии разработки проекта. Нужен совет, по такому вот вопросу:

1. Данные будут храниться в дереве. (список смежности: id - parent_id)
2. Каждый корневой элемент, с parent_id равным 0, будет иметь специальные поля. В зависимости от значения в этих полях, будет определяться поведение всех потомков, данного корневого элемента.
3. Для потомков специальные поля не нужны

Вопрос: стоит ли выносить корневые (parent_id = 0) в отдельную таблицу? или же пуще оставить все в одной таблице и дублировать значения этих спец. полей для всех строк.

Вот некоторые примеры таких спец. полей:

Корневой элемент - может иметь статус: общий/личный. Если статус общий - то все потомки будут доступны всем юзерам.
Корневой элемент - может состоять в группе, соответственно все потомки, тоже в этой группе
Нужно хранить id юзера, который начал ветку, при чем должна быть возможность получать имя этого юзера из любого потомка

При такой архитектуре - нужно будет каждый раз джойнить таблицы с корневыми элементами и потомками. 
Стоит ли выбирать этот путь? Или же все свести в одну таблицу и дублирование данных(т.к. потомки не могут иметь отличных значение от значение корневых элементов по этим спец. полям) будет оправданным?

Также возможно в будущем будут добавленны новые свойства для корневых элементов.


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
patap
Дата 7.4.2011, 10:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 3
Всего: 40



глупости написал.

Думаю будет правильно создать отдельную таблицу с опциями для корневых элементов, со связью 1 к 1 с таблицей в которой хранится дерево. И потом проверять значения этой таблицы.

типа такого что-то

[root_options]
root_id   status   group_id    opt_1 ... opt_n


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.