Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите со связями в ER-схеме / 7 сообщений из 7, страница 1 из 1
04.05.2011, 21:36
    #37246262
0LMER
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со связями в ER-схеме
Вопрос не трудный, но я не могу определиться. Расставляю связи между таблицами.
________
Первый вопрос - "Название таблицы" (часть полей, которые фигурируют в этом вопросе):
Берём 3 таблицы - "Работники" (Код работника, Должность), "Должности" (Должность, Оклад), "Зарплата" (Код работника, Оклад).
_
То есть "Работники"-Должность и "Должности"-Должность связанны, как я понял, многие-к-одной, только в "Работниках" не обязательное присутствие. "Работники"-Код_работника и "Зарплата"-Код_работника тоже понятно как связанны.
Вопрос: Как отобразить связь "Зарплата"-Оклад, если значение будет зависеть (совпадение по Коду_работника "Работники"-"Зарплата") от значения в "Работники"-Должность, то из таблицы "Должность" должно брать соответствующий Оклад, и подставлять в "Зарплата"-Оклад?
P.S. Если непонятно объяснил, могу в "Дополнительно" накидать и прикрепить схемку
___________
Второй вопрос:
Две таблицы - "Больничные" (Код_больничного, Код_рабочего, Дата ухода, Дата выхода на работу, Пропущено рабочих дней), "Статистика отработки" (Код_рабочего, Общее кол-во дней, Пропущено, Отработано, Месяц, Год).
_
"Статистика отработки"-Пропущено - это сумма пропущенных дней за месяц с "Больничных". Какая тут связь? Если бы в "Статистике отработки" велось только за 1 месяц, то многие-к-одному ("Больничные"-"Стат. отр."), но так как каждый месяц встречается снова на этого же работника, можно связь такой и оставить?
___________
Третий вопрос:
Если в таблице "Зарплата" есть поле, "Начислено", для заполнения которого формула будет использовать значение таблицы "Статистика отработки"-Пропущено, "Статистика отработки"-Общее колич. дней, нужно ли отображать как-либо связи в ER-схеме?
...
Рейтинг: 0 / 0
07.05.2011, 00:29
    #37250466
dolbus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со связями в ER-схеме
А поля таблиц сам определял? Или они даны в задании? А то налицо дублирование данных.
...
Рейтинг: 0 / 0
07.05.2011, 17:47
    #37250855
0LMER
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со связями в ER-схеме
где дублирование то? Разве что поле "Оклад" в таблице "Зарплата", но и то для наглядности с другими полями...
...
Рейтинг: 0 / 0
08.05.2011, 00:11
    #37251070
dolbus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со связями в ER-схеме
"Больничные" (Код_больничного, Код_рабочего, Дата ухода, Дата выхода на работу, Пропущено рабочих дней ) - это раз.
"Статистика отработки" (Код_рабочего, Общее кол-во дней, Пропущено, Отработано , Месяц, Год) - это два.
"Больничные".Пропущено рабочих дней и "Статистика отработки".Пропущено - а вот и три.

Наличие полей, значения которых вычисляются на основании других полей - тоже дублирование, пусть и не напрямую. Это только то что бросается в глаза сразу. Думаю, если посмотреть внимательно, то еще можно наскрести.

ЗЫ: Вобщем, схему в студию.
...
Рейтинг: 0 / 0
08.05.2011, 02:25
    #37251115
0LMER
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со связями в ER-схеме
Перевёл "Дни" в "часы" для корректности.
По вашим вопросам:
1. Дата ухода на больничный, Дата выхода на работу - несут информативный характер, слабо представляю как можно вычислить конкретно рабочие дни, не учитывая выходных и праздников, попадающих в этот диапазон. Поэтому, "Пропущено рабочих дней" (сейчас сделал "** часов") - вносится конкретное значение пропущенного.
2. Общее кол-во дней, Пропущено, Отработано - не совсем вычислимы... "Общее кол-во дней" это не есть "Пропущено"+"Отработано", так как отработаны часы могут быть внеурочного времени, которые и учитываются в данном поле, то есть "Отработано" = "Общее кол-во дней"-"Пропущено"+"Внеурочно".
3. Тут дублирование довольно косвенное. Да, оно расчитывается для "Статистика отработки".Пропущено суммой дней по месяцу с "Больничные".Пропущено, но я бы всё же не отнёс это к дублированию...да и удобнее так
...
Рейтинг: 0 / 0
08.05.2011, 14:45
    #37251280
dolbus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со связями в ER-схеме
0LMERслабо представляю как можно вычислить конкретно рабочие дни, не учитывая выходных и праздников, попадающих в этот диапазон В принципе, это возможно.
0LMERОбщее кол-во дней, Пропущено, Отработано - не совсем вычислимы... "Отработано" = "Общее кол-во дней"-"Пропущено"+"Внеурочно". Но "Внеурочно" все равно придется хранить в "Статистике отработки". Хотя бы потому, что внеурочно отработанное время оплачивается отдельно. Так что вычислимость все равно присутствует. Вопрос ведь не в том, можно легко вычислить одно на основании другого, а в том не будут ли противоречить друг другу данные в базе. В вашем случае это возможно. Отностительная сложность вычислимости только создаст сложности при проверке корректности внесенных данных.
0LMERТут дублирование довольно косвенное. Да, оно расчитывается для "Статистика отработки".Пропущено суммой дней по месяцу с "Больничные".Пропущено, но я бы всё же не отнёс это к дублированию...да и удобнее так Удобнее для чего? Если это не дублирование и одно не функция от другого, то одно вместо другого не может быть подставлено в запросе. Тогда все равно придется писать более длинный и медленный запрос.

Я думаю, что стоит пересмотреть структуру базы данных. Например можно в "Статистике отработки" учитывать не сумму часов за месяц, а вести учет часов за каждый календарный день. День недели можно вычислить используя функции для работы с датами. Для праздничных дней можно завести отдельную таблицу. В ней просто перечислить даты праздничных дней. Сверхурочно отработанные часы вычислять как число часов за день - длительность рабочего дня (один из вариантов). Больничные тоже нужно учитывать. Только при таком подходе отпадает нужда в пропущенных по больничным дням. Для рассчета оплаты можно просто проверять попадает дата в интервалы дат больничных или нет. Подумайте над таким вариантом.
...
Рейтинг: 0 / 0
09.05.2011, 01:18
    #37251582
0LMER
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите со связями в ER-схеме
Ок, спасибо
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите со связями в ER-схеме / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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