Таблица базы данных, ссылающаяся на несколько записей - PullRequest
1 голос
/ 27 декабря 2010

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

У меня есть база данных, в которой будет храниться информация о работниках в школе.

У меня есть одна таблица под названием «Семестры», которая содержит информацию о конкретном семестре (например, «Осень / Весна / Лето», год и т. Д.).

У меня есть другая таблица под названием «Сотрудники», которая содержит информацию о конкретном студенте-сотруднике (например, имя, jobTitle, startDate, endDate). Я также хотел бы иметь ссылку на таблицу «Семестры», указывающую, на какой семестр был нанят сотрудник. Так, например, один столбец в таблице «Сотрудники» скажет мне, что этот конкретный сотрудник работал в семестрах «Осень2010, Весна2011 и Осень2011».

Проблема в том, что я не знаю, как ссылаться на несколько записей в одном поле.

Я уверен, что это довольно распространенный сценарий, я просто не знаю, как с этим справиться. Ответы, которые ссылаются на MS Access или SqlServer, будут отличными.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 27 декабря 2010

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

Сотрудники (empID, имя)

1 bob
2 moe
3 george

Семестры (semID, имя)

1 fall 2010
2 spring 2010

EmploymentHistory (empID & semID)

1 1 (bob was employed fall 2010)
1 2 (bob was employed spring 2010)
2 2 (moe was employed fall 2010)
1 голос
/ 27 декабря 2010

Это можно сделать с помощью нескольких внешних ключей для таблицы Semester (не Semesters) из таблицы Employee (не Employees).

Если вы хотите отслеживать семестры, в которых работал Сотрудник, я бы нормализовал это в таблице WorkHistory, которая один-ко-многим с Сотрудником и многие-ко-многим с Семестром.

...