powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Составные объекты
4 сообщений из 4, страница 1 из 1
Составные объекты
    #32361091
VitalyV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые, есть следующая задача, вашему вниманию. Имеются различные геометрические(точка , прямая, полигон) объекты с неким набором характеристик.Объекты эти живут в таблице. Назовем ее условно "Object".
Эта таблица связана по внешнему ключу с другой, в которой хранятся координаты точек состовляющих эти объекты. Выглядит это примерно так.

"Object" "Points"
ID_Object Xar1 Xar2 ... Xar3 ID_Object Number_Points X Y

В таблице "Object" ID_Object-РК. В таблице "Points" ID_Object Number_Points-РК. Т.е. имеем связь один ко многим.
Теперь вопрос: Каким образом можно спроектировать отношения между таблицами, реализующими связь объектов и точек , как многие ко многим,
Т.е. так , чтобы вновь созданный объект ссылался на точки других уже существующих объектов. Соответственно одна и таже точка может иметь несколько хозяев. Я решил эту задачу добавлением третьей таблици
, осуществляющей связь между точками и объектами.

"Relation"
ID_Object ID_ObjectP Number_Points

но мне сказали, что этот вариант дублирует информацию и интереса не представляет. Есть ли другие подходы в решении этой задачи. Спасибо.
...
Рейтинг: 0 / 0
Составные объекты
    #32361094
VitalyV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые, есть следующая задача, вашему вниманию. Имеются различные геометрические(точка , прямая, полигон) объекты с неким набором характеристик.Объекты эти живут в таблице. Назовем ее условно "Object".
Эта таблица связана по внешнему ключу с другой, в которой хранятся координаты точек состовляющих эти объекты. Выглядит это примерно так.

"Object"
ID_Object Xar1 Xar2 ... Xar3
"Points"
ID_Object Number_Points X Y

В таблице "Object" ID_Object-РК. В таблице "Points" ID_Object Number_Points-РК. Т.е. имеем связь один ко многим.
Теперь вопрос: Каким образом можно спроектировать отношения между таблицами, реализующими связь объектов и точек , как многие ко многим,
Т.е. так , чтобы вновь созданный объект ссылался на точки других уже существующих объектов. Соответственно одна и таже точка может иметь несколько хозяев. Я решил эту задачу добавлением третьей таблици
, осуществляющей связь между точками и объектами.

"Relation"
ID_Object ID_ObjectP Number_Points

но мне сказали, что этот вариант дублирует информацию и интереса не представляет. Есть ли другие подходы в решении этой задачи. Спасибо.
...
Рейтинг: 0 / 0
Составные объекты
    #32361265
olk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE TABLE OBJECT (
       OBJECT_ID            INTEGER NOT NULL,
       PROPER_1             VARCHAR2( 20 ) NULL,
       PROPER_2             VARCHAR2( 20 ) NULL,
       PRIMARY KEY (OBJECT_ID)
);

CREATE TABLE POINT (
       POINT_ID         INTEGER NOT NULL,
       X                    INTEGER NULL,
       Y                    INTEGER NULL,
       PRIMARY KEY (POINT_ID)
);

CREATE TABLE OBJECT_POINT (
       OBJECT_ID            INTEGER NOT NULL,
       POINT_ID             INTEGER NOT NULL,
       PRIMARY KEY (OBJECT_ID, POINT_ID)
);



Стандартная связь 0,*-0,* в 3-НФ решит твою задачу,
првада в твоем случае надо думать об удобстве использования,
и я бы лучше денормализовал к твоему первому варианту,
при некоторой избыточности данных обработка значительно упрощиться
...
Рейтинг: 0 / 0
Составные объекты
    #32361272
olk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл :) про номер точки ...
вторая таблица будет выглядеть так
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TABLE POINT (
       POINT_ID         INTEGER NOT NULL,
       NUMBER_POINT  INTEGER NULL,
       X                    INTEGER NULL,
       Y                    INTEGER NULL,
       PRIMARY KEY (POINT_ID)
);

при этом NUMBER_POINT не надо включать в PRIMARY KEY
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Составные объекты
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]