Обучение проектированию баз данных на SQL с использованием C #, sql, asp.net, exchange - PullRequest
1 голос
/ 10 августа 2010

Возможное решение с использованием Active Directory и Exchange см. В моем посте ниже.

Мы хотели бы создать учебную базу данных на SQL, которую мы можем использовать для внутренних тренингов наших сотрудников.К сожалению, у меня нет никакого опыта в проектировании баз данных, и у меня не было возможности купить и прочитать соответствующую книгу по этой теме.

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

В таблице курсов будут храниться наши учебные курсы с их продолжительностью, вместимостью и небольшим описанием того, что вы узнаете по этомукурс.Таблица учебных сессий будет использоваться для привязки курса к конкретному обучению и дате его проведения.Тренеры - это коллеги, которые проводят внутренние курсы.

В таблице посещаемости хранится идентификатор сеанса обучения, и если сотрудник посещал сеанс или не мог.

Ниже приведена диаграмма нашей базы данных:

altтекст http://img8.imageshack.us/img8/2464/trainingdb.jpg

Позже мы также хотели бы сохранить информацию о вакансии, для которой важен учебный курс.Например, наш вводный курс по сети актуален для аналитиков 1-го уровня, аналитиков 2-го уровня и руководителей групп.Наш курс ITIL актуален только для руководителя группы.

Как бы вы хранили эту информацию?Будете ли вы использовать отдельную таблицу с позициями и использовать для этого отношения многие ко многим?

Большое спасибо,

Матиас

Ответы [ 3 ]

2 голосов
/ 10 августа 2010

Немного упрощено, не учитывает регистрацию, но может помочь вам с идеями.

training_model_v1

2 голосов
/ 10 августа 2010

Структура выглядит хорошо. Я бы предложил добавить еще одно отношение внешнего ключа: Attendance.EmployeeID должен ссылаться на таблицу Employee.

Посещаемости не нужен собственный первичный ключ. Комбинация сотрудника и сеанса однозначно идентифицирует его (данный сотрудник не может посещать данный сеанс более одного раза, может? Возможно, вам следует использовать два столбца идентификатора для них в качестве составного первичного ключа.

Действительно ли у курсов есть вместимость, или у них есть вместимость?

Для чего нужен столбец UpdateTime?

1 голос
/ 22 ноября 2011

Training db entity framework edmx

Ниже приводится объяснение таблиц

Мы используем категорию модуля, тип модуля, курс, программу, метод обучения и таблицы после работы дляклассифицировать учебный модуль, используя выпадающие списки.Отношения 1: n.

Модуль <-> отношение сотрудника - m: n.Как видно из модели, таблица пересечений - это «Тренер», где мы определяем дополнительное свойство «Приоритет», которое позволяет нам определять приоритеты тренера для модуля.

Роль отношений обучающего модуля <-> является многоОтношение ко-многим как модуль может иметь отношение ко многим рабочим ролям.Таблица пересечения называется RoleRelevance, и мы определяем для каждой роли требуемые, рекомендуемые, испытательные и скрытые свойства.

В таблице запросов на обучение ведется запись каждого запроса на обучение, который был запрошен.У нас также есть новые стартовые запросы, в которых у нас нет профиля домена / SAM, с которым мы можем связать запрос.

Таблица сотрудников заполняется с наших контроллеров домена запросами AD, в то время как сотрудники запрашивают обучение или инструкторов.определяются для модуля.В таблицу входит SMTP-адрес сотрудника, используемый для отправки приглашений.Посмотрите мои другие публикации stackoverflow для примера кода, как получить эти данные.

Мы создаем приглашение на собрание с управляемым EWS для сотрудника, линейного менеджера, тренера и ресурса / комнаты.Идентификатор и статус приглашения (принять / отклонить / неизвестно) хранятся в таблицах EmployeeInvitation, TrainerInvitation и ResourceInvitation.

Учебные занятия, которые мы создаем, вставляются в таблицу тренировок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...