powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Отображение на диаграммах по какому полю идет связь
18 сообщений из 18, страница 1 из 1
Отображение на диаграммах по какому полю идет связь
    #37244135
EVILDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!

Реверс-инжинирю уже существующую БД (Oracle). Имеется для этого Visio и ERwin. Но связи они вытаскивают криво (видимо потому что в самой БД не все ладно с индексами и ограничениями), поэтому все связи удалил и делаю вручную.
Теперь вопрос - можно ли в этих или других инструментах проектирования БД сделать, чтобы было наглядно видно по какому полю идет связь?

Например, есть таблица COMMENTS (ID, TEXT, USER_ID)
и таблица USERS (ID, NAME).

Хочется щелкнуть по полю COMMENTS.USER_ID и полю USERS.ID, и чтоб установилась прочная связь линией между этими конкретными полями. А на деле в указанных средствах проектирования оказывается что связываются только таблицы и при их перемещении обрыв линии происходит на каком попало поле. В лучшем случае можно добиться чтоб в таблице USERS добавился Foreign Key "USER_ID". Или наоборот в таблице COMMENTS никому не понятный FK "ID" - уже запутался что в какую сторону.

Сам никогда ничего не проектировал, только писал код и SQL-запросы =)) Поэтому очень трудно понять как это до такого извращения додумались, но курсовик писать надо. В гугле не получается найти ответов на мой вопрос.

А впечатление что линия должна идти строго от поля к полю у меня взялось наверное из MS Access. Там в схеме данных так - по конкретным полям связь, и ничего никуда не надо вручную двигать, всё четко и ясно. А ещё говорят: "Access - СУБД для домохозяек".
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37244335
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EVILDeathТеперь вопрос - можно ли в этих или других инструментах проектирования БД сделать, чтобы было наглядно видно по какому полю идет связь?

По моему, в ERwin можно настроить диаграмму так, чтобы показывались имена полей...

EVILDeathА впечатление что линия должна идти строго от поля к полю у меня взялось наверное из MS Access. Там в схеме данных так - по конкретным полям связь, и ничего никуда не надо вручную двигать, всё четко и ясно.Вот такого к сожалению не видел :-(
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37244361
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни в Oracle, ни в Visio или ERwin связи между объектами не поддерживаются принципиально:). "Поля" никакого отношения к связям не имеют. Связь не может "идти по полю". И, следовательно, линия, изображающая связь, не может "соединять поля". Представьте, что для удобства, или по другой причине, Вы вообще не выводите "поля" - это же не значит, что связи исчезли:).
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37244453
EVILDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, если убрать отображение полей, связи из гипотетического представления о схеме данных не изчезнут. Но хотелось бы чтобы диаграмма отображала по каким полям идет связь. Таблицы ж не могут быть связаны между собой просто так, они связываются по конкретным полям в каждой таблице...

Видимо после наблюдения схемы данных Access мне показалось логичным чтобы линии шли от конкретного поля к конкретному полю, чтобы диаграмму было легче читать. А если линии будут идти просто от таблицы к таблице то это надо ещё покумекать, каким образом они связаны. А если таких связей по 3-4 в каждой таблице, то вообще застрелиться можно.

Ну, я так понимаю, единственный шанс узнать по каким полям связаны в таблицы в этих ER-диаграммах - это смотреть на список полей помеченных как FK (Foreign Key)? Больше никак, что ли?

Разве не было бы удобней если б линии сами знали по каким полям идёт их связь и "прилеплялись" к ним? :) Странно, почему ни один из этих пакетов проектирования БД не поддерживает такую функцию. А зачуханный Access поддерживает. Пусть даже и лишь для сохранения рассудка "домохозяек", которые с ним работают... Но ведь удобно же.
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37244469
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EVILDeathВидимо после наблюдения схемы данных Access мне показалось логичным чтобы линии шли от конкретного поля к конкретному полю,
А как поступать, если ключ построен на восьми полях? Восемь линий, от поля к полю? :)

EVILDeathА если линии будут идти просто от таблицы к таблице то это надо ещё покумекать, каким образом они связаны.
От этого неплохо спасают стандарты проектирования и именования.

EVILDeathРазве не было бы удобней если б линии сами знали по каким полям идёт их связь и "прилеплялись" к ним?
Нет. В маленьких схемах это и без этого не возникает затруднений, а в больших вызывает проблемы. Скажем, представь себе таблицу, на которую есть 30-40 ссылок. И все они упираются в одно-единственное поле. И как на эту схему смотреть на экране?

EVILDeathНо ведь удобно же.
Знаешь, оно удобно примерно как третье-четвёртое колёса у велосипеда. Если таблица называется, допустим, Potato, первичный ключ в ней - Num, а поле ссылки - Tomat, то "какие поля связаны" действительно нужно гадать. Если же подход чуть более продуман, такого вопроса просто не возникает. А в отдельных случаях никто не мешает посмотреть, по каким полям построена конкретная связь, в атрибутах этой связи.
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37244554
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 05/03/2011 11:08 PM, softwarer wrote:

> Нет. В маленьких схемах это и без этого не возникает затруднений, а в больших вызывает проблемы. Скажем, представь себе
> таблицу, на которую есть 30-40 ссылок. И все они упираются в одно-единственное поле. И как на эту схему смотреть на экране?

Даже в большой системе, для диаграмм с меньшим количеством связей может было бы и удобно, особенно при разборе чужой
системы, а там где начинает мешать на диаграмме - можно и скрыть.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37244827
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovДаже в большой системе, для диаграмм с меньшим количеством связей может было бы и удобно, особенно при разборе чужой системы, а там где начинает мешать на диаграмме - можно и скрыть.
Есть точка зрения "фичи лишними не бывают", с этой точки зрения если "можно скрыть" - можно согласиться. Мне доводилось разбираться в чужих системах, но настолько не припомню, чтобы именно в этом месте возникали проблемы, что даже не возьмусь сказать, что делал в таких случаях. Имхо, достаточно навести мышку на связь и увидеть в хинте, что и с чем она связывает, наверное так.

Во всяком случае, удачное расположение линий (в частности, способность линии соприкасаться с сущностью сверху или снизу) имхо куда важнее, чем "втыкание в нужное поле".
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37244922
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВо всяком случае, удачное расположение линий (в частности, способность линии соприкасаться с сущностью сверху или снизу) имхо куда важнее, чем "втыкание в нужное поле".
Согласен, пускай линии соприкасаются с сущностью где угодно, но хинт как правило показывает лишь данные лишь одного объекта в каждый момент времени, мне бы хотелось иметь возможность настройки и постоянно видимой информации, и хинта для каждого объекта.
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37245076
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 03.05.2011 18:04, EVILDeath wrote:

> Теперь вопрос - можно ли в этих или других инструментах проектирования БД
> сделать, чтобы было наглядно видно по какому полю идет связь?

В ErWin:

-- Если связь идентифицирующая, то почти всегда видно и так, по какому полю
связь.
-- Для всех связей можно настроить показ rolename, это -- атрибут в дочерней
таблице, к которому идёт связь.

В родительской таблице связь в ErWin всегда идёт от первичного ключа, его
показывать не надо.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37245128
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВ родительской таблице связь в ErWin всегда идёт от первичного ключа
Вы хотите сказать, что ErWin не позволяет создать корректную схему данных?
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37245151
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04.05.2011 13:18, softwarer wrote:

> В родительской таблице связь в ErWin всегда идёт от первичного ключа
>
>
> Вы хотите сказать, что ErWin не позволяет создать корректную схему данных?

Корректную позволяет. Но с точки зрения ErWin-а связь (foreing key) можно
тянуть только от первичного ключа родительской таблицы. И я с такой точкой
зрения согласен.

Правда, это было характерно только для классического ErWin-а, для старых
версий, сейчас уже (7) разрешили тянуть и не от РК, на сколько я знаю.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37245194
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello MasterZiv. On 04 May 2011 09:26:10 you wrote:


> Правда, это было характерно только для классического ErWin-а, для старых
> версий, сейчас уже (7) разрешили тянуть и не от РК, на сколько я знаю.

По-моему уже в 4-ке разрешил.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #37246158
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EVILDeath Да, если убрать отображение полей, связи из гипотетического представления о схеме данных не изчезнут. Но хотелось бы чтобы диаграмма отображала по каким полям идет связь. Таблицы ж не могут быть связаны между собой просто так, они связываются по конкретным полям в каждой таблице....
Если Вы и дальше собираетесь заниматься проблематикой БД, то нужно уже сейчас разобраться в проблеме связей. Между собой связаны сущности (объекты), а вовсе не таблицы. Ни в одной модели данных нет никаких таблиц. Для полноты картины, конечно, нужно обратить внимание и на рассуждения специалистов по "связыванию таблиц":)
EVILDeath Видимо после наблюдения схемы данных Access мне показалось логичным чтобы линии шли от конкретного поля к конкретному полю, чтобы диаграмму было легче читать. А если линии будут идти просто от таблицы к таблице то это надо ещё покумекать, каким образом они связаны. А если таких связей по 3-4 в каждой таблице, то вообще застрелиться можно.
Как Вы уже знаете "связей в таблице" просто нет. Наверное, Вы имеете в виду, что между двумя объектами может быть более одной связи. Конечно. Но они существуют между объектами (а вовсе не между характеристиками объектов, или, по Вашему - между "полями таблиц"). И у каждой из них, помимо мощности, есть определенная семантика в обоих направлениях.
EVILDeath Ну, я так понимаю, единственный шанс узнать по каким полям связаны в таблицы в этих ER-диаграммах - это смотреть на список полей помеченных как FK (Foreign Key)? Больше никак, что ли?
Вы уже видите насколько беспомощна модель данных Oracle:)
EVILDeath Разве не было бы удобней если б линии сами знали по каким полям идёт их связь и "прилеплялись" к ним? :) Странно, почему ни один из этих пакетов проектирования БД не поддерживает такую функцию. А зачуханный Access поддерживает. Пусть даже и лишь для сохранения рассудка "домохозяек", которые с ним работают... Но ведь удобно же.
Вам здесь уже объяснили почему это кажущееся удобство.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Отображение на диаграммах по какому полю идет связь
    #38014454
БредятинаКак Вы уже знаете "связей в таблице" просто нет. Наверное, Вы имеете в виду, что между двумя объектами может быть более одной связи. Конечно. Но они существуют между объектами (а вовсе не между характеристиками объектов, или, по Вашему - между "полями таблиц").


Действительно бредятина.

Ответьте - связь Product.ID -> Sales.Product-id - это связь между объектами или между конкретными полями?

И второе - а зачем тогда на диаграмме отображать всякие там PK, FK ? Это характеристика объекта или ...? Что они добавляют описанию объектов?
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #38014494
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр3213, я настоятельно посоветовал бы Вам не будить лихо.... его потом всем форумом усыплять приходится. К тому же это тот редкий случай, когда он куда более прав, нежели Вы.
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #38014788
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр3213БредятинаКак Вы уже знаете "связей в таблице" просто нет. Наверное, Вы имеете в виду, что между двумя объектами может быть более одной связи. Конечно. Но они существуют между объектами (а вовсе не между характеристиками объектов, или, по Вашему - между "полями таблиц").

Действительно бредятина.
Ответьте - связь Product.ID -> Sales.Product-id - это связь между объектами или между конкретными полями?
Это вообще не связь:)
Александр3213И второе - а зачем тогда на диаграмме отображать всякие там PK, FK ? Это характеристика объекта или ...? Что они добавляют описанию объектов?
Это ограничения целостности:) А не связи.
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #38014790
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerАлександр3213, я настоятельно посоветовал бы Вам не будить лихо.... его потом всем форумом усыплять приходится. К тому же это тот редкий случай, когда он куда более прав, нежели Вы.
Это стандартный случай, когда мне придется всему форуму растолковывать элементы теории БД:)
...
Рейтинг: 0 / 0
Отображение на диаграммах по какому полю идет связь
    #38015004
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаЭто стандартный случай, когда мне придется всему форуму растолковывать элементы теории БД:)
Я думаю, что исходный вопрос темы был про технические возможности инструментов проектирования, а не про теорию БД как таковую.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Отображение на диаграммах по какому полю идет связь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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