Реализация супер тип / подтип дБ - PullRequest
0 голосов
/ 16 августа 2011

Я работаю над БД, где я пытаюсь применить дискриминатор подтипа.

(Super type) Employee Table: **Emp_ID**, F_Name,L_Name,Sex, Dept_Type {"H","S","N"}
(Sub-type) Hardware Table: **Emp_ID**, Level,Manager....
(Sub-type) Software Table: **Emp_ID**, Experience,Skill....
(Sub-type) Network Table: **Emp_ID**, Certification,Proficiency....

Мне нужно знать, как на уровне MS-Access БД обеспечить, чтобы идентификатор EMP с Dept_Type "H" мог вставлять запись только в аппаратную таблицу, а не в программную или сетевую таблицу. Аналогично, EMP_ID с Dept_Type "S" может вставлять записи только в таблицу программного обеспечения, а не в две другие таблицы.

Есть ли способ применения на уровне БД с помощью MS Access? Или это может быть только через приложение

1 Ответ

0 голосов
/ 16 августа 2011

Если вы имеете в виду, что: a) сотрудники, перечисленные в таблице «Оборудование», должны быть указаны в таблице «Сотрудники» с Dept_Type H, и б) сотрудники, указанные в таблице «Программное обеспечение», должны быть указаны в таблице «Сотрудники» с Dept_Type S,Вы можете попробовать что-то вроде этого:

  1. Добавьте поле Dept_Type в каждую из таблиц «Оборудование и программное обеспечение».
  2. В поле «Dept_Type» в таблице «Оборудование» установите для свойства «Требуется» значение Да.а для свойства правила проверки - "H".
  3. В поле Dept_Type в таблице программного обеспечения установите для свойства Required значение Yes, а для свойства правила проверки - "S".
  4. в Employeeсоздайте уникальный индекс для комбинации полей Emp_ID и Dept_Type.
  5. Добавьте отношение, обеспечивающее ссылочную целостность между таблицей Employee (со стороны «one») и таблицей Hardware (со стороны «many»).side ") в комбинации полей Emp_ID и Dept_Type.
  6. Добавьте отношение, которое применяет ссылочныйцелостность между таблицей Employee (на стороне "one") и таблицей Software (на стороне "many") в комбинации полей Emp_ID и Dept_Type.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...