CHill60
Если сотрудник может работать в нескольких отделах, не храните эти сведения в главной таблице для данного сотрудника.
Используйте таблицу "ссылка", которая соединяет их ...
напр.
create table tblDepartmentMaster
(
deptId int identity(1,1),
deptName nvarchar(100)
);
insert into tblDepartmentMaster (deptName) values
('IP'),
('Security'),
('Legal')
('IO');
Обратите внимание, что содержимое этой таблицы теперь
deptID deptName
1 IP
2 Security
3 Legal
4 IO
Когда вы проектируете свой
tblEmpMaster
таблица убедитесь, что каждый сотрудник также имеет уникальный идентификатор, например empId (имя
нет кстати хороший идентификатор)
Создайте третью таблицу, содержащую по одной строке для каждого отдела на сотрудника, содержащую идентификатор отдела и идентификатор сотрудника. Возможно, вы также захотите включить даты от и до
Например, сотрудник № 7 находится в охранном и юридическом отделах, поэтому таблица ссылок будет содержать две строки для этого сотрудника ...
empId deptId
7 2
7 3
Если сотрудник может находиться только в одном отделе одновременно, и если вы не хотите записывать какие-либо перемещения между отделами, то просто включите столбец в таблицу tblEmpMaster для хранения deptid отдела. Это более вероятный сценарий, чтобы быть честным
У вас будут таблицы ссылок для любой из вещей, где более одного может применяться к одному сотруднику - роли могут быть примером этого. Гео, скорее всего, будет одним столбцом в главной таблице, так как вы не можете быть в двух местах одновременно :смех:
Ключевые темы для вашего исследования :
Отношения внешних ключей между таблицами
Нормализация Базы Данных
Virendra S from Bangalore, Karnataka
Спасибо за ваши подробные ответы. ваш ответ прояснил большую часть моих сомнений.
Колонка Geo представляет бизнес-Гео-детали этого человека, которые обрабатываются так, как человек может заботиться о деловой активности в Европе, APAC, на Ближнем Востоке.