Главная страница
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.019 c
2-1220248002
Abcdef123
2008-09-01 09:46
2008.10.12
Работа в среде Дельфи 2007.Что значат ошибки в окне Structure?


3-1207049833
Александр Иванов
2008-04-01 15:37
2008.10.12
Запрос


15-1219142824
Vlad Oshin
2008-08-19 14:47
2008.10.12
откомпилируйте, пожалуйста, чему у вас получилось = i?


2-1220527371
fellow
2008-09-04 15:22
2008.10.12
форма не хочет Show поверх всех


15-1219490687
POP
2008-08-23 15:24
2008.10.12
Список установленных COM портов в системе.