Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос в связи двух таблиц / 25 сообщений из 42, страница 1 из 2
04.03.2014, 12:13
    #38577584
ScarferNV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
Прошу вашего совета. Раньше проектирование БД не занимался, сейчас возникла необходимость.
Возможен ли такой вариант, либо можно сделать более логично. Доупустим, есть две таблицы. В первой таблицы имеется Primary Key, а во второй таблице есть два поля, каждый из которых имеет Foreign Key ссылающийся на ключ из первой таблице. Естественно, эти два поля не могут быть друг другу равны. И вторая таблица может содержать порядка миллиона записей.
...
Рейтинг: 0 / 0
04.03.2014, 12:41
    #38577637
lLocust
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
ScarferNV,

Да, конечно, например таблицы счетов и проводок... они так и организованы обычно )
...
Рейтинг: 0 / 0
04.03.2014, 13:00
    #38577662
Ivan Durak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
ScarferNVПрошу вашего совета. Раньше проектирование БД не занимался, сейчас возникла необходимость.
Возможен ли такой вариант, либо можно сделать более логично. Доупустим, есть две таблицы. В первой таблицы имеется Primary Key, а во второй таблице есть два поля, каждый из которых имеет Foreign Key ссылающийся на ключ из первой таблице. Естественно, эти два поля не могут быть друг другу равны. И вторая таблица может содержать порядка миллиона записей.
почему не могут быть друг другу равны??? могут быть и равны.
...
Рейтинг: 0 / 0
04.03.2014, 15:16
    #38577864
Bogdanov Andrey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
Ivan Durakпочему не могут быть друг другу равны??? могут быть и равны.Ну если специальный констрейнт на это навесить, то можно сделать так, что не смогут быть равными.
...
Рейтинг: 0 / 0
04.03.2014, 17:11
    #38578030
Ivan Durak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
Bogdanov AndreyIvan Durakпочему не могут быть друг другу равны??? могут быть и равны.Ну если специальный констрейнт на это навесить, то можно сделать так, что не смогут быть равными.
у ТС там есть слово "Естественно". Так вот это неестественно. Естественно что они могут быть любые - в т.ч. и равные
...
Рейтинг: 0 / 0
14.03.2014, 12:46
    #38586161
ScarferNV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
Спасибо! То что не могут быть равны, это уже по моей задачи.
...
Рейтинг: 0 / 0
23.04.2014, 14:03
    #38623036
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
ScarferNV,

ScarferNVВ первой таблицы имеется Primary Key, а во второй таблице есть два поля, каждый из которых имеет Foreign Key ссылающийся на ключ из первой таблице

Охренеть... а кто нибудь на практике это делал ? Я вот попробовал - дудки... по крайней мере в классике... в схеме данных это сделать не получается, после того как протянул первую связь, при попытке тянуть вторую - акес говорит - ты че дурак ? Связь уже есть... Изменить на другую ? Как то криво в схему еще раз Таблицу 2 вставить можно (доп. экземпляром) и натянуть второй ключ, но это уже похоже на изврат... скорее всего такую реализацию можно делать только программно и самому, ну по крайней мере по одному из вторичных ключей точно...
...
Рейтинг: 0 / 0
23.04.2014, 14:23
    #38623063
lLocust
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmagScarferNV,
Охренеть... а кто нибудь на практике это делал ? Я вот попробовал - дудки... по крайней мере в классике... в схеме данных это сделать не получается, после того как протянул первую связь, при попытке тянуть вторую - акес говорит - ты че дурак ? Связь уже есть... Изменить на другую ? Как то криво в схему еще раз Таблицу 2 вставить можно (доп. экземпляром) и натянуть второй ключ, но это уже похоже на изврат... скорее всего такую реализацию можно делать только программно и самому, ну по крайней мере по одному из вторичных ключей точно...

А причем здесь access? и это не изврат!!!
...
Рейтинг: 0 / 0
23.04.2014, 14:56
    #38623143
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmagScarferNV,

ScarferNVВ первой таблицы имеется Primary Key, а во второй таблице есть два поля, каждый из которых имеет Foreign Key ссылающийся на ключ из первой таблице

Охренеть... а кто нибудь на практике это делал ?

Думаю, легче спросить "кто не делал?". Это совершенно стандартый паттерн, например, для хранения "друзей" в соцсети, результатов матчей и еще кучи всего.
...
Рейтинг: 0 / 0
23.04.2014, 18:42
    #38623592
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
Кот МатроскинДумаю, легче спросить "кто не делал?"

Легче, но нет смысла, ибо это даже делал я, но не получилось... Вопрос: у кого получилось ? В какой СУБД ? И если можно скриншот (не из фотошопа)....
...
Рейтинг: 0 / 0
23.04.2014, 19:09
    #38623624
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
ScarferNV,

Уточняю, что речь идет про вот это (нарисовано в фотошопе):
...
Рейтинг: 0 / 0
23.04.2014, 19:15
    #38623636
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmag,

Ну не можете сделать в графическом интерфейсе [в аксессе] - сделайте скриптом. Или Вы сомневаетесь, что это и скриптом сделать можно?
...
Рейтинг: 0 / 0
23.04.2014, 21:19
    #38623780
two
two
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmagScarferNV,

Уточняю, что речь идет про вот это (нарисовано в фотошопе):
...))

увы и ах

в Аксе


на (Акс) пространстве схем
можно добавить Тбл(1...) еще раз(многа-многа)

можно - 'дописать руками'


и повязать ПК-ФК

скока нужно
...
Рейтинг: 0 / 0
23.04.2014, 23:44
    #38623850
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
two...))

увы и ах

в Аксе


на (Акс) пространстве схем
можно добавить Тбл(1...) еще раз(многа-многа)

можно - 'дописать руками'


и повязать ПК-ФК

скока нужно

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

vmagКак то криво в схему еще раз Таблицу 2 вставить можно (доп. экземпляром) и натянуть второй ключ, но это уже похоже на изврат... скорее всего такую реализацию можно делать только программно и самому
...
Рейтинг: 0 / 0
24.04.2014, 10:08
    #38624046
lLocust
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmag,

?
...
Рейтинг: 0 / 0
24.04.2014, 10:26
    #38624071
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
lLocust,

А пояснения можно (к этой схеме электрической-принципиальной)? Что за СУБД такая ? В которой первичный и вторичный ключ могут быть с разными характеристиками (текст и вообще непонятно что)... Это нужно не мне, это нужно автору топика, а то ему флаг в руки дали, а автомат с патронами забыли....
...
Рейтинг: 0 / 0
24.04.2014, 10:33
    #38624091
lLocust
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmag,

Это не СУБД - это среда для проектирования СУБД (так же как и та которую Вы на картинке привели). Просто в access она немного убогая (Если сравнивать с промышленными решениями).
...
Рейтинг: 0 / 0
24.04.2014, 10:36
    #38624096
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
lLocust,

А по хорошему. здесь просто графическая не точность... скорее всего связи идут от первого к первому, от второго ко второму, а это немножко не то...
...
Рейтинг: 0 / 0
24.04.2014, 10:41
    #38624108
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
lLocustЭто не СУБД - это среда для проектирования СУБД

Ну дак я на ватмане то карандашами - такого могу нарисовать... тоже своего рода среда проектирования... Только вот СУБД переварит это все или нет, вот в чем вопрос... Интересен скрин с рабочего макета какой то СУБД...
...
Рейтинг: 0 / 0
24.04.2014, 10:50
    #38624123
lLocust
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmag,

моя переварит:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
/*==============================================================*/
/* Table: T_NEW_TABLE                                           */
/*==============================================================*/
create table T_NEW_TABLE 
(
   CH_ID                NUMBER               not null,
   PARENT_ID1           NUMBER,
   PARENT_ID2           NUMBER,
   constraint PK_T_NEW_TABLE primary key (CH_ID)
);

/*==============================================================*/
/* Table: T_PARENT_TABLE                                        */
/*==============================================================*/
create table T_PARENT_TABLE 
(
   PARENT_ID            NUMBER               not null,
   PARENT_NAME          VARCHAR2(100),
   constraint PK_T_PARENT_TABLE primary key (PARENT_ID)
);

alter table T_NEW_TABLE
   add constraint FK_T_NEW_TA_REF_T_PARENT foreign key (PARENT_ID1)
      references T_PARENT_TABLE (PARENT_ID);

alter table T_NEW_TABLE
   add constraint FK_T_NEW_TA_REF_T_PARENT foreign key (PARENT_ID2)
      references T_PARENT_TABLE (PARENT_ID);


Попробую объяснить словами, если намеками не получается:
Это не изврат, только потому что вы пользуетесь средством проектирования, которое так делать не умеет!
...
Рейтинг: 0 / 0
24.04.2014, 11:50
    #38624260
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmag Только вот СУБД переварит это все или нет, вот в чем вопрос

СУБД "переваривает" команды , а не графическую фигню. Графическая фигня просто помогает генерировать эти команды/скрипты. Скриптами это сделать можно, Вам уже сказали раз 5. Может ли нужный скрипт сгенерировать [конкретная] графическая фигня -вопрос к графической фигне, а не СУБД (не очень интересный, кстати сказать).
...
Рейтинг: 0 / 0
24.04.2014, 12:04
    #38624298
Ivan Durak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmaglLocustЭто не СУБД - это среда для проектирования СУБД

Ну дак я на ватмане то карандашами - такого могу нарисовать... тоже своего рода среда проектирования... Только вот СУБД переварит это все или нет, вот в чем вопрос... Интересен скрин с рабочего макета какой то СУБД...
в субд констрейнты реально можно и не создавать. Зачем они вам. В модели достаточно.
...
Рейтинг: 0 / 0
24.04.2014, 15:22
    #38624793
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
lLocust,

Ну во-первых субд под названием "МОЯ" я не знаю...
Во- вторых, даже то что написано ниже неправильно к рисунку:

alter table T_NEW_TABLE
add constraint FK_T_NEW_TA_REF_T_PARENT foreign key (PARENT_ID1)
references T_PARENT_TABLE (PARENT_ID);

alter table T_NEW_TABLE
add constraint FK_T_NEW_TA_REF_T_PARENT foreign key (PARENT_ID2)
references T_PARENT_TABLE (PARENT_ID);

В последней строке должно быть как минимум references T_PARENT_TABLE ( PARENT_NAME );
что есть VAR CHAR, а значит скрипт ватмановский и никто его не проверял....

Думаю автор топика сюда еще вернется чтоб всех поблагодарить за благословение....
...
Рейтинг: 0 / 0
24.04.2014, 17:00
    #38624958
Bogdanov Andrey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmagВ последней строке должно быть как минимум references T_PARENT_TABLE ( PARENT_NAME );
что есть VAR CHAR, а значит скрипт ватмановский и никто его не проверял....Кто вам такую хрень сказал? Ссылка идет на ID, как и должно быть. А если вам на рисунке показалось, что белый ромбик рядом с полем Parent_Name, то это означает только то, что вы плохо понимаете изображение на ER-диаграмме.
...
Рейтинг: 0 / 0
24.04.2014, 18:05
    #38625021
lLocust
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос в связи двух таблиц
vmag,

Я вот подозревал что нужно будет расшифровать слово "моя".... :) Ну не моя, конечно, а только та, которую я использую в своей работе. Это всего-лишь oracle, не access, конечно...

Бывают разные (иногда сложные, а иногда дурные) диаграммы....
Зачем привязывать связь (визуальное ее отображение) к полю? на диаграмме в первую очередь нужно увидеть связь между таблицами, а уж по каким полям это можно и отдельно посмотреть...
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос в связи двух таблиц / 25 сообщений из 42, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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