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

Прошу не вникать в в проблемную сферу. Главное, что в этом примере вы видите цикл.

Где-то слышал, что циклы - вещь недопустимая, но так как практического опыта у меня не так много, то я несовсем понимаю почему? И действительно ли цикл - вещь вредная? Понятно, что отношения Relation4 может и не быть, но тогда, чтобы выбрать задания (Task) привязанные к конкретному пользователю (User), нужно будет использовать в запросе 2 дополнительные таблицы - Group и Report, а если связь ещё глубже?

Вопрос - так допустимы ли циклы (для упращения доступа к данным) или нет? Если нет, то почему?

Спасибо.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34950445
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста воспользуйтесь поиском. Я точно помню, что здесь же подробно отвечал на этот вопрос, и там было достаточно хорошее большое обсуждение.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34951183
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
watsonВопрос - так допустимы ли циклы (для упращения доступа к данным) или нет? Если нет, то почему?

допустимы. есть потребность - делайте.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34951192
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.s. поиском не пользуйтесь. Все равно ничего не найдете. Это просто типичная манера отмахнуться на этом форуме.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34951664
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простеший цикл: Подразделение входит_в Подразделение.
Как же без них.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34952516
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не обнаружил цикла на диаграмме.
Если зависимости Relationship_4 и Relationship_1 + Relationship_2 + Relationship_3 - обозначают одно и то же, то зависимость Relationship_4 избыточна, и как правило её следует удалить. Если обе зависимости имеют разный смысл. Например, могут существовать независимо друг от друга, то это вполне нормально.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34953147
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
watson пишет:
> Где-то слышал, что циклы - вещь недопустимая, но так как практического

Допустимая, ничего страшного. Главное что где-то в цикле одно ссылающееся
поле должно быть NULL-able. Хотя даже и это не обязательно правда
для всех на свете СУБД.

> И действительно
> ли цикл - вещь вредная?

Ну если у тебя такая модель, такие данные, что ж тут плохого ?

> Вопрос - так допустимы ли циклы (для упращения доступа к данным) или

При чем здесь упрощение доступа - не понятно.

Кстати, самый тривиальный пример цикла - табличка, хранящая
дерево, ссылающаяся сама на себя. Два поля, id - PK, и parent_id -
FK references THIS_TABLE (id). Ничего страшного, даже - идиома проектирования.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34953319
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
При чем здесь упрощение доступа - не понятно.

типичный пример, похожи на приведенную картинку - калькуляция производственных заказов.. на любом уровне ссылка на позицию заказа. Позволяет быстро и просто выполнять групповые корректировки. Иначе... путь по иерархии вниз или вверх при каждом чихе. ИМХО, что-то подобное Автор имел ввиду под упрощением доступа.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34953345
watson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
> Вопрос - так допустимы ли циклы (для упращения доступа к данным)
При чем здесь упрощение доступа - не понятно.


Я имею в виду, что в запросе будет использовано меньше таблиц. то есть в данном случае, без связи Relation4, для того чтобы получить задания Task привязанные к конкретному пользователю Users пришлось бы писать подобный запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Select u.name, t.name
from users u,
     group g,
     report r,
     task t
where u.user_id=g.user_id
  and g.group_id=r.group_id
  and t.task_id=r.task_id
  and u.user_id= 0001 

При наличии связи Relation4 запрос будет таким:

Код: plaintext
1.
2.
3.
4.
5.
Select u.name, t.name
from users u,
        task t
where t.user_id=u.user_id
   and u.user_id= 0001 
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34953511
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Циклы допустимы. При этом как правило используются дополнительные ограничения.

Однако, watson, приведенный Вами пример - хороший признак плохой структуры данных. Я не могу представить ни одной задачи, которая бы требовала настолько нелепого подхода.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34953700
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
watsonПри наличии связи Relation4 запрос будет таким:

Код: plaintext
1.
2.
3.
4.
5.
Select u.name, t.name
from users u,
        task t
where t.user_id=u.user_id
   and u.user_id= 0001 


Смотри на задачу шире. Да. Relation4 позволяет упростить один SQL запрос, но подумай, чего будет стоить поддержание непротиворечивости продублированных данных в процессе их изменения.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34954450
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Watson
На диаграмме показывают связи - ограничения.
Пути доступа это другое. Даже основных слишком много, чтобы изображать на диаграмме.
Наконец, связи могут быть, в терминах ERWin, идентифицирующими (ключи родителей мигрируют в ключи потомков) или не идентифицирующими.
mcureenab уже написал про +/- миграции ключей.

В любом случае циклы в модели тут ни при чем, как оказалось.
...
Рейтинг: 0 / 0
Допустим ли цикл в модели данных?
    #34955543
watson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, я не даю оценки хороши циклы или нет... а диаграмма просто для того, чтобы показать наглядней и это абсолютно выдуманная структура, которую в жизнь никто воплощать не собирается. Изоображённые отношения как раз и являются связями-ограничениями.
По поводу упрощения запроса при наличии отношения Relation4 я просто высказываю предположения, почему это отношение может дать какую-либо пользу, естественно, что оно является избыточным.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Допустим ли цикл в модели данных?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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