![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Какой таблице принадлежит запись со значением ключа? [D6, XP]
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]
> Да, только у него несколько таблиц...
Зыж не тебе, а автору...