powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос в связи двух таблиц
42 сообщений из 42, показаны все 2 страниц
Вопрос в связи двух таблиц
    #38577584
ScarferNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу вашего совета. Раньше проектирование БД не занимался, сейчас возникла необходимость.
Возможен ли такой вариант, либо можно сделать более логично. Доупустим, есть две таблицы. В первой таблицы имеется Primary Key, а во второй таблице есть два поля, каждый из которых имеет Foreign Key ссылающийся на ключ из первой таблице. Естественно, эти два поля не могут быть друг другу равны. И вторая таблица может содержать порядка миллиона записей.
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38577637
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScarferNV,

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

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

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

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

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

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

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

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

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

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

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

увы и ах

в Аксе


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

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


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

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

увы и ах

в Аксе


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

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


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

скока нужно

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

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

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

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

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

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

Ну дак я на ватмане то карандашами - такого могу нарисовать... тоже своего рода среда проектирования... Только вот СУБД переварит это все или нет, вот в чем вопрос... Интересен скрин с рабочего макета какой то СУБД...
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #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
Вопрос в связи двух таблиц
    #38624260
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag Только вот СУБД переварит это все или нет, вот в чем вопрос

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

Ну дак я на ватмане то карандашами - такого могу нарисовать... тоже своего рода среда проектирования... Только вот СУБД переварит это все или нет, вот в чем вопрос... Интересен скрин с рабочего макета какой то СУБД...
в субд констрейнты реально можно и не создавать. Зачем они вам. В модели достаточно.
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #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
Вопрос в связи двух таблиц
    #38624958
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagВ последней строке должно быть как минимум references T_PARENT_TABLE ( PARENT_NAME );
что есть VAR CHAR, а значит скрипт ватмановский и никто его не проверял....Кто вам такую хрень сказал? Ссылка идет на ID, как и должно быть. А если вам на рисунке показалось, что белый ромбик рядом с полем Parent_Name, то это означает только то, что вы плохо понимаете изображение на ER-диаграмме.
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38625021
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

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

Бывают разные (иногда сложные, а иногда дурные) диаграммы....
Зачем привязывать связь (визуальное ее отображение) к полю? на диаграмме в первую очередь нужно увидеть связь между таблицами, а уж по каким полям это можно и отдельно посмотреть...
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38625202
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScarferNV две таблицы . В первой таблицы имеется Primary Key , а во второй таблице есть два поля , каждый из которых имеет Foreign Key ссылающийся на ключ из первой таблице .

По русски же написано : не просто абстрактные связи между двумя таблицами вообще, а два поля (вторичных ключа) из второй таблицы ссылаются одновременно на один и тот же ключ (первичный) из первой таблицы. Какая СУБД может автоматически без ручных докруток, запросов и скриптов поддержать в этом случае целостность, каскадное удаление, каскадное изменение, а тем более связь по разнородным ключам (как в примерах выше- один ключ текст, второй число )? Просто скажите типа "Я Пупкин - отвечаю за свои слова - Оракл поддерживает" .... всё... больше ничего ни от кого не нужно... спросивший будет знать куда и зачем идти... и тема будет закрыта (надеюсь...) Схема была выше на рисунке (для тех кто опять не понял смысл)...
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38625250
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

ну че ты разорался
любая нормальная СУБД это делает
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38625274
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScarferNVПрошу вашего совета. Раньше проектирование БД не занимался, сейчас возникла необходимость.

Короче ответ будет такой : Пилите Шура... Пилите... Они золотые... (Паниковский в Золотом теленке по поводу украденных гирь)
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38629379
Kolobochek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Такой вот вопрос. Похож на тот что в теме. Есть 2 сущности. Одна Пользователь, вторая Сообщение. В Сообщение есть 2 атрибута: ид_отправителя и ид_получателя. Все они ссылаются на ид Пользователь. Имеет ли такая схема шанс на существование. В том смысле не нарушает ли они принципы проектирования БД?
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38629472
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KolobochekИмеет ли такая схема шанс на существование. Имеет.
KolobochekВ том смысле не нарушает ли они принципы проектирования БД?Не нарушает
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38629553
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KolobochekТакой вот вопрос. Похож на тот что в теме. Есть 2 сущности. Одна Пользователь, вторая Сообщение. В Сообщение есть 2 атрибута: ид_отправителя и ид_получателя. Все они ссылаются на ид Пользователь. Имеет ли такая схема шанс на существование. В том смысле не нарушает ли они принципы проектирования БД?

Здесь все ИД однотипные , если даже это реализовать явно не получится, то можно реализовать кодингом, запросами и т.д. главное при реализации проекта помнить и держать свою схему в голове - если в голове не будет противоречий, то будет и существование и принципы... это применительно к вашему случаю...
Самое главное не доводить дело до абсурда типа:
- один нарисовал две абстрактные таблицы с миллионом связей между ними по разношерстным полям (и считает себя гением - типа краткость сестра таланта и в сущности влезать не барское дело)
- второй поставил визу "Реализовать"
- третий ежика родил - но как то реализовал...
- деньги попилили...
- а потом вся страна смотрит телевизор и хором кричит: Мля... глонас упал в океан....
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38629835
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag Здесь все ИД однотипные , если даже это реализовать явно не получится, то можно реализовать кодингом, запросами и т.д. главное при реализации проекта помнить и держать свою схему в голове - если в голове не будет противоречий, то будет и существование и принципы... это применительно к вашему случаю...
Самое главное не доводить дело до абсурда типа:
- один нарисовал две абстрактные таблицы с миллионом связей между ними по разношерстным полям (и считает себя гением - типа краткость сестра таланта и в сущности влезать не барское дело)
- второй поставил визу "Реализовать"
- третий ежика родил - но как то реализовал...
- деньги попилили...
- а потом вся страна смотрит телевизор и хором кричит: Мля... глонас упал в океан....
Ну опять Вы за свое? Ну зачем все держать в голове, когда есть ER-диаграммы.
Что значит явным образом? В большинстве СУБД это реализуется как раз скриптами.
Про абсурд Вы конечно правы, но зачем это было расписывать, когда вопрос звучал так:
авторИмеет ли такая схема шанс на существование. В том смысле не нарушает ли они принципы проектирования БД?
Нет не нарушает - это нормально.
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38630621
Kolobochek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Был вариант реализовать как на диаграмме
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38630734
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolobochek,

Ну да... что то в этом есть, оригинально: юзер и отправитель и получатель и даже сам себе может отправить, и просто - дальше некуда и любая СУБД подойдет на ура и со скриптами париться не нужно и голову засирать не нужно - сделал и забыл... РЕСПЕКТ !!!
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38630847
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KolobochekБыл вариант реализовать как на диаграмме

А нафига две промежуточные таблицы?
Sender recipient ?

А вообще топик повеселил...
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38631331
Kolobochek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagKolobochek,

Ну да... что то в этом есть, оригинально: юзер и отправитель и получатель и даже сам себе может отправить, и просто - дальше некуда и любая СУБД подойдет на ура и со скриптами париться не нужно и голову засирать не нужно - сделал и забыл... РЕСПЕКТ !!!

Что это значит?
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38631549
Kolobochek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что в этой схеме не так?
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38631583
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolobochek,

Не то чтобы не так - просто смысл в таблицах sender и recepient есть только в том случае,
если одни юзеры могут только посылать сообщения, а другие - только принимать.
Если все могут и посылать и принимать - гораздо проще делать просто 2 ссылки на таблицу user, как и обсуждалось с начала топика. Это совершенно нормальная практика, не нужно придумывать пути ее обхода.
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38631601
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KolobochekЧто это значит?

Это значит что все просто замечательно, удачное решение, я разве сказал что-то плохое?
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38631656
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KolobochekЧто в этой схеме не так?
В ней 50% лишних таблиц... а так все норм
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38631710
Kolobochek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagKolobochekЧто это значит?

Это значит что все просто замечательно, удачное решение, я разве сказал что-то плохое?

Я усмотрел в вашем ответу ноту сарказма. Может я и не прав.
...
Рейтинг: 0 / 0
Вопрос в связи двух таблиц
    #38632880
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KolobochekМожет я и не прав.Конечно, не прав. Изобретать идиотское решение из-за неумения визуального редактора правильно отобразить что-то... Похоже, что мир сошел с ума.
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос в связи двух таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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