|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.07.2009, 03:24 | #1 |
Новичок
Джуниор
Регистрация: 19.05.2008
Сообщений: 2
|
Помогите составить запрос или перепроектировать БД
Есть база данных такого вида:
CREATE TABLE InfoTree ( ID AUTOINCLARGEINT ParentID LARGEINT DEFAULT -1 NOT NULL, Name WIDESTRING(1023) ); CREATE TABLE Tags ( TagID AUTOINCLARGEINT, TagName WIDESTRING(1023) ); CREATE TABLE TagDependancy ( TagID LARGEINT, ID LARGEINT ); Первая таблица содержит древовидную структуру данных (полей там побольше конечно, но в данном случае это не важно). Вторая таблица содержит список возможных тэгов и их уникальных идентификаторов. И третяя таблица содержит связи между записями главной таблицы и тэгами. Проект написан на Delphi, используется база данных Absolute Database. Для отображения используется компонент DevExpress TcxDBTreeList. Он автоматом отрисовывает дерево по таблице InfoTree на основе ID и ParentID. Мне дали этот проект доработать, необходимо добавить еще один TcxDBTreeList который будет показывать дерево тегов. Это дерево всегда двухуровневое. На первом уровне у него имена тэгов (Tags.TagName), на втором уровне имена элементов основной таблицы (InfoTree.Name) соответсвующие этому тэгу. Т.е. нужно построить таблицу c тремя полями: ID - уникальный идентификатор ParentID - родитель, для записей первого уровня (тэгов), он будет равен -1 Name - имя элемента, для первого уровня Tags.TagName, для второго соответсвенно InfoTree.Name Собственно вопрос, как это оптимально сделать? Если надо структуру всех таблиц можно переделать. В планах также переход на SQLite. В базах данных и SQL я новичок, так что сильно не пинайте. Единственное, на что у меня хватит знаний сейчас это строить это таблицу вручную, бегая по таблицам в цикле, но думаю это не самый лучший вариант. Жду советов! |
27.07.2009, 10:51 | #2 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
ничего не надо переделывать
просто в первый запрос, которые тебе строит дерево, добавь внешнее соединение с таблицей TagDependancy (потому что не у каждого элемента есть тэг в общем случае) и прямое соединение с таблицей Tags, чтобы выцепить само название тэга |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите создать сложный запрос (или как писать код для столбца запроса) | kukuanna | Microsoft Office Access | 0 | 24.07.2009 14:10 |
составить запрос с учетом времени | sinj | SQL, базы данных | 9 | 09.06.2009 13:41 |
Необходимо составить запрос | span4 | SQL, базы данных | 17 | 05.04.2009 11:43 |
Как правельно составить запрос!! | Areostar | SQL, базы данных | 3 | 16.02.2008 19:49 |
составить запрос к таблицам T1 и T2 | MonteCarlos | SQL, базы данных | 13 | 03.02.2008 14:05 |