Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.12;
Скачать: CL | DM;

Вниз

SQL-запрос   Найти похожие ветки 

 
AlexeyMir   (2008-04-10 13:13) [0]

Подскажите, пожалуйста, возможно ли следующее
У меня есть таблица SPR_CAR в БД Firebird следующей структуры:
ID     ParentId    Name           Sheet
1          0          Вазы              0
2          0          Москвичи       0
3          1          Ваз2101          1
4          1          Ваз2106          1
5          2          Комби             1
6          0          Скутер 455      1  
Таблица в программе отображается в виде дерева, поле  ParentID указывает родителя, а если 0-то родитель корень. Но у машины может быть родитель и корень(как у последней позиции).Sheet- признак группа или машина.У меня должна быть такая функция как перемещение машины в другую группу, поэтому в программе вываливается диалог в котором спрашивается в какую группу переместить машину, выполняется SQL:
select ID,Name from SPR_CAR where Sheet=0
который выдает две строки Вазы и Москвичи.
Как можно в выборку добавить свою строчку где ID=0 Name="Корень" ?
Может быть както SQL-запрос можно изменить(может union)?
Не могу придумать.


 
Ega23 ©   (2008-04-10 13:26) [1]

select ID,Name from SPR_CAR where (Sheet=0) or (ParentId =0)


 
Sergey13 ©   (2008-04-10 13:41) [2]

> [0] AlexeyMir   (10.04.08 13:13)

Я бы подумал в сторону логической оптимизации структуры. ИМХО надо сделать так, что бы невозможно было внести машину в корень дерева. Например ввести псевдо группу "Разное". Это упростит, ИМХО, работу с таблицей.

Наличие поля Sheet вообще вызывает у меня сомнение, т.к. подгрупп я в примере не увидел. Если (по моим догадкам) уровней будет строго 2, то может быть стОит перейти на простую двухтабличную М-Д связь?


 
Сергей М. ©   (2008-04-10 16:55) [3]


> Как можно в выборку добавить свою строчку где ID=0 Name="Корень"
> ?


А она откуда возьмется ? В таблице-то нет записи с такими атрибутами ..
Можно, конечно, ХП для этой цели прикрутить, но, imho, здесь требуется серьезный пересмотр древесной структуры и логики.


 
kaif ©   (2008-04-10 19:44) [4]

А почему бы в таблицу не добавить корневую запись?

ID     ParentId    Name           Sheet
0          0          Корень              0


 
ANB   (2008-04-11 18:21) [5]


> kaif ©   (10.04.08 19:44) [4]
> А почему бы в таблицу не добавить корневую запись?
>
> ID     ParentId    Name           Sheet
> 0          0          Корень              0
> <Цитата>

И это самое лучшее решение.



Страницы: 1 вся ветка

Текущий архив: 2008.10.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
15-1219228723
Квэнди
2008-08-20 14:38
2008.10.12
ModelMaker отображение полей класса


4-1197883964
p_evghenii
2007-12-17 12:32
2008.10.12
Как завершить работу другого приложения раньше Windows


2-1220138044
rexar
2008-08-31 03:14
2008.10.12
bitmap &amp; pixel


2-1220338737
Сергей
2008-09-02 10:58
2008.10.12
Как увеличить высоту ComboBox?


1-1199986299
MaX
2008-01-10 20:31
2008.10.12
Юникод в делфи