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

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

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

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


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