|
|
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток! Реверс-инжинирю уже существующую БД (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 - СУБД для домохозяек". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 17:04 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
EVILDeathТеперь вопрос - можно ли в этих или других инструментах проектирования БД сделать, чтобы было наглядно видно по какому полю идет связь? По моему, в ERwin можно настроить диаграмму так, чтобы показывались имена полей... EVILDeathА впечатление что линия должна идти строго от поля к полю у меня взялось наверное из MS Access. Там в схеме данных так - по конкретным полям связь, и ничего никуда не надо вручную двигать, всё четко и ясно.Вот такого к сожалению не видел :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 19:16 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
Ни в Oracle, ни в Visio или ERwin связи между объектами не поддерживаются принципиально:). "Поля" никакого отношения к связям не имеют. Связь не может "идти по полю". И, следовательно, линия, изображающая связь, не может "соединять поля". Представьте, что для удобства, или по другой причине, Вы вообще не выводите "поля" - это же не значит, что связи исчезли:). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 19:58 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
Да, если убрать отображение полей, связи из гипотетического представления о схеме данных не изчезнут. Но хотелось бы чтобы диаграмма отображала по каким полям идет связь. Таблицы ж не могут быть связаны между собой просто так, они связываются по конкретным полям в каждой таблице... Видимо после наблюдения схемы данных Access мне показалось логичным чтобы линии шли от конкретного поля к конкретному полю, чтобы диаграмму было легче читать. А если линии будут идти просто от таблицы к таблице то это надо ещё покумекать, каким образом они связаны. А если таких связей по 3-4 в каждой таблице, то вообще застрелиться можно. Ну, я так понимаю, единственный шанс узнать по каким полям связаны в таблицы в этих ER-диаграммах - это смотреть на список полей помеченных как FK (Foreign Key)? Больше никак, что ли? Разве не было бы удобней если б линии сами знали по каким полям идёт их связь и "прилеплялись" к ним? :) Странно, почему ни один из этих пакетов проектирования БД не поддерживает такую функцию. А зачуханный Access поддерживает. Пусть даже и лишь для сохранения рассудка "домохозяек", которые с ним работают... Но ведь удобно же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 21:55 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
EVILDeathВидимо после наблюдения схемы данных Access мне показалось логичным чтобы линии шли от конкретного поля к конкретному полю, А как поступать, если ключ построен на восьми полях? Восемь линий, от поля к полю? :) EVILDeathА если линии будут идти просто от таблицы к таблице то это надо ещё покумекать, каким образом они связаны. От этого неплохо спасают стандарты проектирования и именования. EVILDeathРазве не было бы удобней если б линии сами знали по каким полям идёт их связь и "прилеплялись" к ним? Нет. В маленьких схемах это и без этого не возникает затруднений, а в больших вызывает проблемы. Скажем, представь себе таблицу, на которую есть 30-40 ссылок. И все они упираются в одно-единственное поле. И как на эту схему смотреть на экране? EVILDeathНо ведь удобно же. Знаешь, оно удобно примерно как третье-четвёртое колёса у велосипеда. Если таблица называется, допустим, Potato, первичный ключ в ней - Num, а поле ссылки - Tomat, то "какие поля связаны" действительно нужно гадать. Если же подход чуть более продуман, такого вопроса просто не возникает. А в отдельных случаях никто не мешает посмотреть, по каким полям построена конкретная связь, в атрибутах этой связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 22:08 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
On 05/03/2011 11:08 PM, softwarer wrote: > Нет. В маленьких схемах это и без этого не возникает затруднений, а в больших вызывает проблемы. Скажем, представь себе > таблицу, на которую есть 30-40 ссылок. И все они упираются в одно-единственное поле. И как на эту схему смотреть на экране? Даже в большой системе, для диаграмм с меньшим количеством связей может было бы и удобно, особенно при разборе чужой системы, а там где начинает мешать на диаграмме - можно и скрыть. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2011, 23:48 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
Denis PopovДаже в большой системе, для диаграмм с меньшим количеством связей может было бы и удобно, особенно при разборе чужой системы, а там где начинает мешать на диаграмме - можно и скрыть. Есть точка зрения "фичи лишними не бывают", с этой точки зрения если "можно скрыть" - можно согласиться. Мне доводилось разбираться в чужих системах, но настолько не припомню, чтобы именно в этом месте возникали проблемы, что даже не возьмусь сказать, что делал в таких случаях. Имхо, достаточно навести мышку на связь и увидеть в хинте, что и с чем она связывает, наверное так. Во всяком случае, удачное расположение линий (в частности, способность линии соприкасаться с сущностью сверху или снизу) имхо куда важнее, чем "втыкание в нужное поле". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2011, 10:17 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
softwarerВо всяком случае, удачное расположение линий (в частности, способность линии соприкасаться с сущностью сверху или снизу) имхо куда важнее, чем "втыкание в нужное поле". Согласен, пускай линии соприкасаются с сущностью где угодно, но хинт как правило показывает лишь данные лишь одного объекта в каждый момент времени, мне бы хотелось иметь возможность настройки и постоянно видимой информации, и хинта для каждого объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2011, 10:57 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
On 03.05.2011 18:04, EVILDeath wrote: > Теперь вопрос - можно ли в этих или других инструментах проектирования БД > сделать, чтобы было наглядно видно по какому полю идет связь? В ErWin: -- Если связь идентифицирующая, то почти всегда видно и так, по какому полю связь. -- Для всех связей можно настроить показ rolename, это -- атрибут в дочерней таблице, к которому идёт связь. В родительской таблице связь в ErWin всегда идёт от первичного ключа, его показывать не надо. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2011, 12:01 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
MasterZivВ родительской таблице связь в ErWin всегда идёт от первичного ключа Вы хотите сказать, что ErWin не позволяет создать корректную схему данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2011, 12:18 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
On 04.05.2011 13:18, softwarer wrote: > В родительской таблице связь в ErWin всегда идёт от первичного ключа > > > Вы хотите сказать, что ErWin не позволяет создать корректную схему данных? Корректную позволяет. Но с точки зрения ErWin-а связь (foreing key) можно тянуть только от первичного ключа родительской таблицы. И я с такой точкой зрения согласен. Правда, это было характерно только для классического ErWin-а, для старых версий, сейчас уже (7) разрешили тянуть и не от РК, на сколько я знаю. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2011, 12:26 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
Hello MasterZiv. On 04 May 2011 09:26:10 you wrote: > Правда, это было характерно только для классического ErWin-а, для старых > версий, сейчас уже (7) разрешили тянуть и не от РК, на сколько я знаю. По-моему уже в 4-ке разрешил. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2011, 12:43 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
EVILDeath Да, если убрать отображение полей, связи из гипотетического представления о схеме данных не изчезнут. Но хотелось бы чтобы диаграмма отображала по каким полям идет связь. Таблицы ж не могут быть связаны между собой просто так, они связываются по конкретным полям в каждой таблице.... Если Вы и дальше собираетесь заниматься проблематикой БД, то нужно уже сейчас разобраться в проблеме связей. Между собой связаны сущности (объекты), а вовсе не таблицы. Ни в одной модели данных нет никаких таблиц. Для полноты картины, конечно, нужно обратить внимание и на рассуждения специалистов по "связыванию таблиц":) EVILDeath Видимо после наблюдения схемы данных Access мне показалось логичным чтобы линии шли от конкретного поля к конкретному полю, чтобы диаграмму было легче читать. А если линии будут идти просто от таблицы к таблице то это надо ещё покумекать, каким образом они связаны. А если таких связей по 3-4 в каждой таблице, то вообще застрелиться можно. Как Вы уже знаете "связей в таблице" просто нет. Наверное, Вы имеете в виду, что между двумя объектами может быть более одной связи. Конечно. Но они существуют между объектами (а вовсе не между характеристиками объектов, или, по Вашему - между "полями таблиц"). И у каждой из них, помимо мощности, есть определенная семантика в обоих направлениях. EVILDeath Ну, я так понимаю, единственный шанс узнать по каким полям связаны в таблицы в этих ER-диаграммах - это смотреть на список полей помеченных как FK (Foreign Key)? Больше никак, что ли? Вы уже видите насколько беспомощна модель данных Oracle:) EVILDeath Разве не было бы удобней если б линии сами знали по каким полям идёт их связь и "прилеплялись" к ним? :) Странно, почему ни один из этих пакетов проектирования БД не поддерживает такую функцию. А зачуханный Access поддерживает. Пусть даже и лишь для сохранения рассудка "домохозяек", которые с ним работают... Но ведь удобно же. Вам здесь уже объяснили почему это кажущееся удобство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2011, 19:00 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
БредятинаКак Вы уже знаете "связей в таблице" просто нет. Наверное, Вы имеете в виду, что между двумя объектами может быть более одной связи. Конечно. Но они существуют между объектами (а вовсе не между характеристиками объектов, или, по Вашему - между "полями таблиц"). Действительно бредятина. Ответьте - связь Product.ID -> Sales.Product-id - это связь между объектами или между конкретными полями? И второе - а зачем тогда на диаграмме отображать всякие там PK, FK ? Это характеристика объекта или ...? Что они добавляют описанию объектов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 13:19 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
Александр3213, я настоятельно посоветовал бы Вам не будить лихо.... его потом всем форумом усыплять приходится. К тому же это тот редкий случай, когда он куда более прав, нежели Вы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 13:40 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
Александр3213БредятинаКак Вы уже знаете "связей в таблице" просто нет. Наверное, Вы имеете в виду, что между двумя объектами может быть более одной связи. Конечно. Но они существуют между объектами (а вовсе не между характеристиками объектов, или, по Вашему - между "полями таблиц"). Действительно бредятина. Ответьте - связь Product.ID -> Sales.Product-id - это связь между объектами или между конкретными полями? Это вообще не связь:) Александр3213И второе - а зачем тогда на диаграмме отображать всякие там PK, FK ? Это характеристика объекта или ...? Что они добавляют описанию объектов? Это ограничения целостности:) А не связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 15:47 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
softwarerАлександр3213, я настоятельно посоветовал бы Вам не будить лихо.... его потом всем форумом усыплять приходится. К тому же это тот редкий случай, когда он куда более прав, нежели Вы. Это стандартный случай, когда мне придется всему форуму растолковывать элементы теории БД:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 15:48 |
|
||
|
Отображение на диаграммах по какому полю идет связь
|
|||
|---|---|---|---|
|
#18+
БредятинаЭто стандартный случай, когда мне придется всему форуму растолковывать элементы теории БД:) Я думаю, что исходный вопрос темы был про технические возможности инструментов проектирования, а не про теорию БД как таковую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 17:10 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37244135&tid=1541496]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 354ms |

| 0 / 0 |
