|
|
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
Привет, All! в БД есть несколько таблиц объектов например: ... Здания Машины Мебель ... у объектов есть критерий "местоположение", Мебель может находиться как в Здание так и в Машине, при попытке реализации, ввел два поля "Тип объекта хозяина" и "Id объекта хозяина", но при длинной цепочки Район->Город->(Здание, Машина)->Мебель возникает ряд проблем при построении запроса появилась идея вынести "Тип объекта хозяина" и "Id объекта хозяина" в отдельную таблицу, а в объекте оставить ссылку на запись в этой таблице Хотел узнать как кто решал подобные задачи, наверняка я не первый Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 14:05 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
На мой взгляд задача поставлена неверно или я ее не понимаю. У здания(склада) есть адрес состоящий(если верить КЛАДР) из Региона, района, города, населенного пункта и т.д. Это одна задача, надеюсь не вызывающая у вас сложности (как задать адрес часто обсуждается на данном форуме). У машины соответственно никаких адресов быть не может. DeХотел узнать как кто решал подобные задачи, наверняка я не первый Так вот и озвучте "задачу". Если задача состоит складском учете где находятся мебель, то надо начинать с приходных и расходных ведомостей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 14:58 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
Estets...машины соответственно никаких адресов быть не может. почему? если к такому объекту как Города добавит Дороги, а так же учесть что Машина может находится внутри Здания (гараж), то вот вам и адрес EstetsТак вот и озвучте "задачу". названия таблиц взяты для примера таблицы: ... Города Здания Машины Топливо ... Здания могут находится только в Городах Машины в Городах и в Зданиях Топливо в Зданиях(складах) и в Машинах требуется определить CityId города в котором находится Топливо с известным FuelId в данном случае проблема в том, что может быть несколько цепочек: Город->Здание->Топливо Город->Здание->Машина->Топливо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 15:19 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
Сумбурная постановка задачи, если не секрет это действительно вам поставили такую задачу, или это очередная дипломная работа на тему "а чем бы еще студентов занять" Дано: 1) Список машин 2) Машина может одновременно находиться в одном месте 3) Место может быть либо гараж либо город 4) Есть список гаражей с адресом 5) Есть список городов соответственно признаком состояния машины является CityID или BuildingID. Задача: Получить список машин либо с именем города, или с адресом гаража, в зависимости от того какое из полей заполнено. Я думаю не такой уж сложный отчет с CASE или UNION ALL. По поводу второй части, все равно не очень понятно, нет такого понятия как ID топлива. Можно вести количественный учет топлива. Например 1) Есть список гаражей с определенным количеством топлива 2) Есть список машин с определенным количеством топлива Задача? Получить итого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 17:13 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
>Estets уважаемый, зачем Вы все сводите к бухгалтерии, отвлекитесь, это не бух- и не складской учет я же упомянул, что название таблиц взяты для примера, количество ступений/локаций может быть различное, заводить под каждый тип локации свой Id непростительная расточительство если вам так уж не понравилось топливо давайте заменим его на человека: объекты: ... Страны Города Дороги Здания Машины Человек ... цепочки: Человек-Здание-Город-Страна Человек-Машина-Город-Страна Человек-Машина-Дорога-Страна Человек-Машина-Здание-Город-Страна ... предположим нужно передать сообщение всем людям находящимся в городе с известным CityId P.S. проектирую под MySQL/Access P.P.S. нет это не курсовая и не диплом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 17:40 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
> Хотел узнать как кто решал подобные задачи Опишите исходную задачу, без примеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 18:01 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
>guest_20040621 да собственно последнее описание и есть часть задачи проектирую некоторую модель мира (приближенно, помидорами не кидаться :) ) объекты разных типов храняться в разных таблицах с помощью "типа объекта хранителя" и "Id хранителя" задается древовидная структура местоположения объекта в системе требуется зная Id некотого узла цепочки произвести некоторые действия с определенным типом объектов входящих в эту ветку (выше описано, знаем CityId, нужно что-то сделать с объектами типа Человек входящих в эту ветку) количество типов объектов (а соответственно и локаций) со временем может увеличится (система будет развиваться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 18:11 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
> с помощью "типа объекта хранителя" и "Id хранителя" задается древовидная > структура местоположения объекта в системе Поищите в форуме "метамодель", - была целая куча обсуждений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 18:42 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
Deобъекты: ... Страны Города Дороги Здания Машины Человек ... цепочки: Человек-Здание-Город-Страна Человек-Машина-Город-Страна Человек-Машина-Дорога-Страна Человек-Машина-Здание-Город-Страна ... предположим нужно передать сообщение всем людям находящимся в городе с известным CityId Уточнил бы: Страна.. Человек - типы объектов. В общем случае таблицы Объекты(ИД,Тип,...) Связи (Кто, С_кем, Тип_связи) или может более частный случай Находится(Кто, Где). и гулять по ним как вздумается. Интересных тем здесь много. Ограничения на связи тема очень интересная. Например, разрешается ли Человек-Машина-Машина-Здание-Город-Страна. Административное деление опять же... Цель то какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2006, 10:49 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
ModelR Уточнил бы: Страна.. Человек - типы объектов. в самом первом сообщении: в БД есть несколько таблиц объектов Цель то какая? глобально: проектирую некоторую модель мира (приближенно, помидорами не кидаться :) ) локально: выработать наиболее удобную структуру храненеия данных/связей и механизм их обработки, особенно при построении сложных запросов (с сокращением количества запросов, то есть не получение данных о каждой связи отдельным запросом, а попытаться получить их с минимальным количеством обращений к БД) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2006, 11:46 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
Из опыта могу сказать, что если человек не может в 2-х абзацах описать задачу, то решения у этой задачи нет ;) Deлокально: выработать наиболее удобную структуру храненеия данных/связей и механизм их обработки, особенно при построении сложных запросов (с сокращением количества запросов, то есть не получение данных о каждой связи отдельным запросом, а попытаться получить их с минимальным количеством обращений к БД) Если вопрос в том как организовать FK в базе если они ссылаются на разные таблицы (объекты) то можно пошерстить по форуму, этот вопрос достаточно часто всплывает. Краткое резюме - есть два подхода: 1) Не вносить FK в базу, связи обрабатывать клиентом (как это решается например в Axapta) 2) Делать одну базовую таблицу Код: plaintext 1. 2. Deпоявилась идея вынести "Тип объекта хозяина" и "Id объекта хозяина" в отдельную таблицу, а в объекте оставить ссылку на запись в этой таблице Выносить связи в другую таблицу нужно только в случае если связей у одного экземпляра может быть больше одной. Т.е.: Код: plaintext 1. 2. Если связь одна то можно ее включить в раблицу ALL_ITEM как связь вама на себя: Код: plaintext 1. 2. 3. Тогда получаем древовидную структуру: Код: plaintext 1. 2. 3. 4. 5. 6. А как обходить дерево можно почитать на этом форуме или на форумах по соответствующим БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2006, 12:57 |
|
||
|
Ссылки на разные таблицы
|
|||
|---|---|---|---|
|
#18+
Я тоже поддерживаю идею ModelR, нужно всего несколько таблиц: Объекты, типы объектов, взаимосвязи объектов. Причем последняя должна поддерживать не только дерево, но и граф, для универсальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 12:41 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33593022&tid=1545355]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 412ms |

| 0 / 0 |
