![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| patap |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 893 Регистрация: 7.5.2005 Где: Украина, Зп Репутация: 3 Всего: 40 |
Всем привет.
Я на ранней стадии разработки проекта. Нужен совет, по такому вот вопросу: 1. Данные будут храниться в дереве. (список смежности: id - parent_id) 2. Каждый корневой элемент, с parent_id равным 0, будет иметь специальные поля. В зависимости от значения в этих полях, будет определяться поведение всех потомков, данного корневого элемента. 3. Для потомков специальные поля не нужны Вопрос: стоит ли выносить корневые (parent_id = 0) в отдельную таблицу? или же пуще оставить все в одной таблице и дублировать значения этих спец. полей для всех строк. Вот некоторые примеры таких спец. полей: Корневой элемент - может иметь статус: общий/личный. Если статус общий - то все потомки будут доступны всем юзерам. Корневой элемент - может состоять в группе, соответственно все потомки, тоже в этой группе Нужно хранить id юзера, который начал ветку, при чем должна быть возможность получать имя этого юзера из любого потомка При такой архитектуре - нужно будет каждый раз джойнить таблицы с корневыми элементами и потомками. Стоит ли выбирать этот путь? Или же все свести в одну таблицу и дублирование данных(т.к. потомки не могут иметь отличных значение от значение корневых элементов по этим спец. полям) будет оправданным? Также возможно в будущем будут добавленны новые свойства для корневых элементов. -------------------- На боку кобура болталась, сзади шашка отцовская звякала. Впереди меня все хохотало, а позади все плакало (с) |
|||
|
||||
| patap |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 893 Регистрация: 7.5.2005 Где: Украина, Зп Репутация: 3 Всего: 40 |
глупости написал.
Думаю будет правильно создать отдельную таблицу с опциями для корневых элементов, со связью 1 к 1 с таблицей в которой хранится дерево. И потом проверять значения этой таблицы. типа такого что-то [root_options] root_id status group_id opt_1 ... opt_n -------------------- На боку кобура болталась, сзади шашка отцовская звякала. Впереди меня все хохотало, а позади все плакало (с) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |