|
|
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
Предположем имеется база, которую можно отобразить при помощи данной ER-диаграммы: ER Прошу не вникать в в проблемную сферу. Главное, что в этом примере вы видите цикл. Где-то слышал, что циклы - вещь недопустимая, но так как практического опыта у меня не так много, то я несовсем понимаю почему? И действительно ли цикл - вещь вредная? Понятно, что отношения Relation4 может и не быть, но тогда, чтобы выбрать задания (Task) привязанные к конкретному пользователю (User), нужно будет использовать в запросе 2 дополнительные таблицы - Group и Report, а если связь ещё глубже? Вопрос - так допустимы ли циклы (для упращения доступа к данным) или нет? Если нет, то почему? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 00:05 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
Пожалуйста воспользуйтесь поиском. Я точно помню, что здесь же подробно отвечал на этот вопрос, и там было достаточно хорошее большое обсуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 00:44 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
watsonВопрос - так допустимы ли циклы (для упращения доступа к данным) или нет? Если нет, то почему? допустимы. есть потребность - делайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 11:31 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
p.s. поиском не пользуйтесь. Все равно ничего не найдете. Это просто типичная манера отмахнуться на этом форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 11:32 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
Простеший цикл: Подразделение входит_в Подразделение. Как же без них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 13:09 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
Не обнаружил цикла на диаграмме. Если зависимости Relationship_4 и Relationship_1 + Relationship_2 + Relationship_3 - обозначают одно и то же, то зависимость Relationship_4 избыточна, и как правило её следует удалить. Если обе зависимости имеют разный смысл. Например, могут существовать независимо друг от друга, то это вполне нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 16:00 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
watson пишет: > Где-то слышал, что циклы - вещь недопустимая, но так как практического Допустимая, ничего страшного. Главное что где-то в цикле одно ссылающееся поле должно быть NULL-able. Хотя даже и это не обязательно правда для всех на свете СУБД. > И действительно > ли цикл - вещь вредная? Ну если у тебя такая модель, такие данные, что ж тут плохого ? > Вопрос - так допустимы ли циклы (для упращения доступа к данным) или При чем здесь упрощение доступа - не понятно. Кстати, самый тривиальный пример цикла - табличка, хранящая дерево, ссылающаяся сама на себя. Два поля, id - PK, и parent_id - FK references THIS_TABLE (id). Ничего страшного, даже - идиома проектирования. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 18:17 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
MasterZiv При чем здесь упрощение доступа - не понятно. типичный пример, похожи на приведенную картинку - калькуляция производственных заказов.. на любом уровне ссылка на позицию заказа. Позволяет быстро и просто выполнять групповые корректировки. Иначе... путь по иерархии вниз или вверх при каждом чихе. ИМХО, что-то подобное Автор имел ввиду под упрощением доступа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 19:03 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
MasterZiv > Вопрос - так допустимы ли циклы (для упращения доступа к данным) При чем здесь упрощение доступа - не понятно. Я имею в виду, что в запросе будет использовано меньше таблиц. то есть в данном случае, без связи Relation4, для того чтобы получить задания Task привязанные к конкретному пользователю Users пришлось бы писать подобный запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. При наличии связи Relation4 запрос будет таким: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 19:14 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
Циклы допустимы. При этом как правило используются дополнительные ограничения. Однако, watson, приведенный Вами пример - хороший признак плохой структуры данных. Я не могу представить ни одной задачи, которая бы требовала настолько нелепого подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 21:04 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
watsonПри наличии связи Relation4 запрос будет таким: Код: plaintext 1. 2. 3. 4. 5. Смотри на задачу шире. Да. Relation4 позволяет упростить один SQL запрос, но подумай, чего будет стоить поддержание непротиворечивости продублированных данных в процессе их изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 00:27 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
2 Watson На диаграмме показывают связи - ограничения. Пути доступа это другое. Даже основных слишком много, чтобы изображать на диаграмме. Наконец, связи могут быть, в терминах ERWin, идентифицирующими (ключи родителей мигрируют в ключи потомков) или не идентифицирующими. mcureenab уже написал про +/- миграции ключей. В любом случае циклы в модели тут ни при чем, как оказалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 11:09 |
|
||
|
Допустим ли цикл в модели данных?
|
|||
|---|---|---|---|
|
#18+
Господа, я не даю оценки хороши циклы или нет... а диаграмма просто для того, чтобы показать наглядней и это абсолютно выдуманная структура, которую в жизнь никто воплощать не собирается. Изоображённые отношения как раз и являются связями-ограничениями. По поводу упрощения запроса при наличии отношения Relation4 я просто высказываю предположения, почему это отношение может дать какую-либо пользу, естественно, что оно является избыточным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 14:53 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=111&tid=1544178]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 342ms |

| 0 / 0 |
