таблица сама на себя

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
BadSanta
Сообщения: 60
Зарегистрирован: 2012.07.20, 15:33

таблица сама на себя

Сообщение BadSanta »

Добрый день. Есть таблица tasks. у нее есть id, title, parent_id - который ссылается на id этой же таблицы.

Т.е. есть верхний уровень(т.е. нет parent_id) это проект, далее задача, подзадача. Все. На этом уровень вложенности заканчивается.

Создаю модели: Projects, Tasks, Subtasks.

В Project в defaultScope() делаю 'condition' => 'parent_id IS NULL'. А какие мне прописать conditionЫ в Tasks и Subtasks. Т.е. мне надо как то узнать есть ли у parent_id еще parent_id. Помогите плз. Или подскажите другой, красивый метод реализации.
Аватара пользователя
Oscar
Сообщения: 35
Зарегистрирован: 2012.11.24, 10:46
Откуда: Baku
Контактная информация:

Re: таблица сама на себя

Сообщение Oscar »

Если вы используете вложенность н-ного размера то я посоветовал бы NestedSetsBehavior поюзать
brntsrs
Сообщения: 40
Зарегистрирован: 2012.07.16, 16:07

Re: таблица сама на себя

Сообщение brntsrs »

Зачем смешивать все в одну кучу? Вроде хотелось сделать хитро, но получилось сложно. Ладно еще задачи и подзадачаи свести в одну таблицу, но почему проект там должен быть? Разделить - и будет счастье.
Если так сильно хочется сделать именно в одной таблице - почему не использовать какое-нибудь поле `type`?
NestedSet - штука хорошая, но в разумных рамках. На 3 уровнях вложенности совершенно лишняя.
BadSanta
Сообщения: 60
Зарегистрирован: 2012.07.20, 15:33

Re: таблица сама на себя

Сообщение BadSanta »

Решено сделать доп колонку TYPE. Решил пойти по пути наименьшего сопротивления. :) Ну и про NestedSetsBehavior почитаю обязательно... Спасибо.
Ответить