|
|
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, столкнулся с проблемой при проектировании БД. Возникает т.н цикличная связь. Для информации: предметная область - ФГОС 3 поколения, проектируемая бд должна обеспечивать ввод и хранение итоговых оценок выпускников вуза по дисциплинам и отображать сведения об успеваемости по компетенциям. схема данных [img=https://lh3.googleusercontent.com/RXLOffCNg6ks31K1ulcDDyiOJ23HtMmviXpic2p0GjnxjcpUfT9Jd_LG5SY5utiYZMBNXeotdhdBhutPVY1XG3-gVckiSC0 ] Суть в следующем: Есть специальность(speciality) для которой характерен набор дисциплин(descipline) они связанны отношением многие ко многим и набор компетенций (competention), компетенции характерны для одной специальности т.е. одна специальность включает в себя несколько компетенций. Далее самый цирк, компетенции состоят из нескольких дисциплин, и одна дисциплина входит в несколько компетенций в рамках компетенции диспиплина имеет свой вес поле (weigth) в таблице (competention_discipline). Так же в рамках специальности у каждой дисциплины определённое общее количество часов, (я думаю это поле (total_hours) в таблице discipline_speciality ) Прошу помощь в следующем: 1. Корректна ли данная связь в рамках данной базы (cм. рисунок) ? (Поясните свое мнение) 2. Поле общее количество часов на дисциплину необходимо хранить в той таблице(см. курсив выше)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 18:35 |
|
||
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
zentiybk, А количество часов дисциплины точно задано для специальности, а не компетенции? Потому что тогда я бы не хранил прямую связь специальности и дисциплины, а только лишь связь через компетенции. В противном случае у Вас возможны аномалии 1. Дисциплина входит в специальность, но не входит ни в одну из компетенций специальности. 2. Дисциплина входит в компетенцию специальности, но не входит в специальность. P.S. Схема у Вас очень плохочитаемая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 18:52 |
|
||
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, спасибо за ответ. Вообще там логика такая - есть ФГОС например 09.04.04(Программная инженерия магистратура) в нем описываются компетенции которыми должен обладать выпускник далее идет перечень дисциплин с указанием академических часов и в каждой для каждой дисциплины указываются какими компетенциями должен обладать тот, кто прослушал этот курс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 19:15 |
|
||
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 19:19 |
|
||
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, какой выход можете посоветовать что бы избежать аномалий описанных вами? Я понимаю так если если я реализую связь которую нарисовал на схеме для избежания аномалий я должен выполнять соответствующие проверки на клиенте, верно? А время все таки хранить в таблице discipline_speciality , так как время во неизменно для дисциплины. (Например: Философия - является и общекультурной компетенцией (ОК) и профессиональной (ПК) а сам курс длился к примеру часов 30.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 19:31 |
|
||
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинПотому что тогда я бы не хранил прямую связь специальности и дисциплины, а только лишь связь через компетенции. а я бы с вами не согласилась :) связь специальности - дисциплина важнее (ее нельзя игнорировать): например, по ней будем планировать и рассчитывать нагрузку преподавателей и студентов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 23:22 |
|
||
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
zentiybk, Для начала я бы обсудил эти казусы с тем, кто ставил Вам задачу - может это не аномалии, а нормальная ситуация. Если подтвердится что это-таки аномалии и что механизма "встроенной защиты" от них в предметной области нет - да, придется писать проверки. Необязательно (и даже нежелательно) на клиенте - можно в триггерах, можно в хранимых процедурах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 23:25 |
|
||
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
mini.weblab, при чем тут "игнорировать" - связи никуда не деваются, просто хранятся в одном месте, а не в двух. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 23:27 |
|
||
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, я не согласилась с тем, как вы предлагаете их хранить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 23:39 |
|
||
|
Проблема при проектировании БД MSSQL
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 00:03 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39250721&tid=1540325]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
178ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 278ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...