Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Какой таблице принадлежит запись со значением ключа? [D6, XP]


Страницы:   1 2

Drowsy ©   (2012-08-02 22:32:00) 

В базе данных (Firebird 2.0) есть таблицы, с ключевыми полями Code, у которых один общий генератор. Как получить название таблицы, которой принадлежит запись с определённым значением ключа?


Dennis I. Komarov   (2012-08-05 21:16:00) [1]


> к какой форме нормализации приведена твоя "база данных"?

хорошо пошутил - вовремя... :)))


turbouser   (2012-08-04 22:51:00) [2]


> Drowsy ©   (04.08.12 22:33) [27]

RTFM, RTFB


Drowsy   (2012-08-04 22:33:00) [3]


> sniknik ©   (04.08.12 20:44) [26]

Спасибо за полезный вопрос, Николай! Моя задумалась серьёзно..


sniknik   (2012-08-04 20:44:00) [4]

к какой форме нормализации приведена твоя "база данных"?


Drowsy   (2012-08-04 18:34:00) [5]

да


Anatoly Podgoretsky   (2012-08-04 18:24:00) [6]

Ты хочешь подтверждения?


Drowsy   (2012-08-04 17:01:00) [7]


> sniknik ©   (04.08.12 16:58) [22]

да?! ладно, значит я дурак.


sniknik   (2012-08-04 16:58:00) [8]

> и никто не предложил.
???
я предлагал запрос к одной таблице.


Drowsy   (2012-08-04 16:46:00) [9]


> sniknik ©   (04.08.12 15:53) [20]

"сканированием" при данной архитектуре будет один запрос к 3-м таблицам. более простого решения я не нахожу и никто не предложил.


sniknik   (2012-08-04 15:53:00) [10]

> сканировать всё придётся
+ 1 к
> Дурость в поиске
и
> ты хотел написать "where ССЗБ is not null"?

базы данных, sql, для того и нужны чтобы хранить данные в структурированном виде, предоставлять инфу по простым запросам (известно что где лежит, по какому полю проверка, что с чем объединить можно, как обрабатывать). архитектура базы должна быть направлена на это. если у тебя база это просто кучка разнородных таблиц которые нужно сканировать чтобы хоть что-то выбрать ... ССЗБ, другого не скажешь.

p.s. зря "встрял", все было сказано до меня.


Drowsy   (2012-08-04 13:07:00) [11]

сканировать всё придётся, чтобы определить, какое оборудование выбрано и размещено в графике -> таблица "Компоновка" (3 координаты и ссылка на уникальное поле "общей таблицы" MainCode.


sniknik   (2012-08-04 12:58:00) [12]

> это и есть "таблица для общих обработок"
если ее не хватает для общей обработки, что в теме, то нет. что это за "общность" если даже по значению ключа найти и нужно извращаться...

должно быть, ИМХО, - по ключу читаешь из общей таблицы тип, и по нему точно знаешь где лежат "персонализированные данные". обращаешься (или джойниш) уже к конкретной таблицу... работаешь с одной, т.к. там только отличия, общей обработки не получится. а ты почему то пытаешься сканировать все.


Drowsy   (2012-08-04 12:50:00) [13]


> sniknik ©   (04.08.12 12:09) [16]

Наверное, я не очень понял, но мне кажется, что здесь
Drowsy ©   (04.08.12 01:57) [11] именно так и сделано ("связующай"это и есть "таблица для общих обработок"). Можно, конечно, перетащить из всех таблиц в неё общее для всех таблиц поле "картинка" (других общих просто нет), но это не упростит общую архитектуру.


sniknik   (2012-08-04 12:09:00) [14]

> и тут вопрос о внешней ссылке на одну из записей одной из таблиц, откуда это оборудование вытянуто
лучше бы у тебя тут вопрос о прочтении теории по базам возник...

все твои таблицы по сути одна, должна быть, у которой есть поле признак - тип оборудования... все отличия, доп поля, которые есть у одного типа но нет у другого можно вынести в дополнительные (получать "полную" тогда джойном с основной по определенному типу), но работать с этими "допами" придется каждый раз персонально (ну вот представь форму редактирования для пары, в одной сто полей в другой пять, будешь одинаково обрабатывать?).
т.е. у тебя должна быть одна таблица для общих обработок, и много с отличиями (если они вообще будут, т.к. это будет не структурированная инфа бессмысленная в базе... т.е. ее можно держать в мемо поле основной, без особого ущерба логике).
тут у тебя вопрос фактически - "как состряпать из кучи не структурированных данных структуру, чтобы можно было с ней работать", а она вообще то должна быть заложена в архитектуру самой базы.


Inovet   (2012-08-04 08:17:00) [15]

> [7] AV ©   (03.08.12 10:17)
> where ССС.Б is not null

ты хотел написать "where ССЗБ is not null"?


Drowsy   (2012-08-04 07:47:00) [16]

Если изобразить архитектуру [11] и в качестве внешней ссылки в таблице компоновки использовать MainCode, то все необходимые запросы поиска вроде можно будет реализовать.


Drowsy   (2012-08-04 05:36:00) [17]

общая задача такая : рассчитывать и компоновать в графике разное оборудование. таблицы - описания разных типов оборудования (количество полей и их типы в таблицах очень разные). для компоновки в графике, эти таблицы хранят картинки оборудования. для хранения координат графической компоновки, создаётся таблица (Х, Y, Z + (и тут вопрос о внешней ссылке на одну из записей одной из таблиц, откуда это оборудование вытянуто))


turbouser   (2012-08-04 02:35:00) [18]


> Drowsy ©   (04.08.12 01:57) [11]

Ужас какой. Что за задача?


Drowsy   (2012-08-04 01:57:00) [19]

архитектуры ещё нет. пока пытаюсь придумать. в - общем, в связи с вышеуказанным, ничего другого не придумывается, как создать ещё пару таблиц
1) Список таблиц (TabCode, название таблицы)
2) связующая таблица (код с генератором MainCode, TabCode);
3) во все таблицы "поиска" добавить поле (MainCode)
В триггерах таблиц "поиска" изменять связующую таблицу и поле MainCode в самих таблицах поиска.

и делать выбор по MainCode.


Dennis I. Komarov   (2012-08-03 11:06:00) [20]


> Да, только у него несколько таблиц...

Зыж не тебе, а автору...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо