Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с выборкой из БД, firebird 2 
:(
    Опции темы
stmamont
Дата 16.2.2007, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 13.3.2004
Где: влг

Репутация: нет
Всего: 3



Вот такие таблички получились:
Код

CREATE TABLE CLASSES(
    classID INTEGER PRIMARY KEY, 
    className CHAR(100)
);

CREATE TABLE DELTAS(
    classID INTEGER FOREIGN KEY REFERENCES CLASSES classID,
    deltaID INTEGER FOREIGN KEY REFERENCES CLASSES classID
);

CREATE TABLE ATTRIBUTES(
    SID INTEGER PRIMARY KEY,
    deltaID INTEGER FOREIGN KEY REFERENCES CLASSES classID,
    name CHAR(100),
    tableName CHAR(100)
);

CREATE TABLE OBJECTS(
    OID INTEGER PRIMARY KEY,
    classID INTEGER FOREIGN KEY REFERENCES CLASSES classID
);

CREATE TABLE PARAM1(
    OID INTEGER FOREIGN KEY REFERENCES OBJECTS OID,
    SID INTEGER FOREIGN KEY REFERENCES ATTRIBUTES SID,
    value /*some type*/
);

ИМХО, как надо находить все атрибуты объекта у которого OBJECTS.OID = :OID :
шаг1. находим все DELTAS.deltaID которые содержатся в классе объекта
// findDeltas(int OID);
шаг2.  находим все ATTRIBUTES.tableNames в которых могут лежать атрибуты объекта
// findTableNames(findDeltas(int OID))
шаг3. находим все атрибуты из всех таблиц из tableNames найденных + у атрибутов найденных должен быть OID = :OID
// ??

база данных firebird 2

неужели все на самом деле так сложно? и придется использовать PSQL?


--------------------
user posted image
PM MAIL ICQ   Вверх
Альберт
Дата 19.2.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 28.12.2005

Репутация: нет
Всего: нет



select a.* from attributes a, objects o, deltas d where o.classID=d.classID and d.deltaID=a.deltaID and o.OID=:OID
PM MAIL   Вверх
stmamont
Дата 19.2.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 13.3.2004
Где: влг

Репутация: нет
Всего: 3



Альберт,
Таким запросом вы получите информацию об атрибутах объекта
хотелось бы получить значения атрибутов...
Но спасибо, по крайней мере 2 из 3 запросов упростили)


--------------------
user posted image
PM MAIL ICQ   Вверх
Alex
Дата 26.2.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



stmamont, а значение атрибута где хранится?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0714 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.