Создание новой реляционной базы данных SQL (MSSQL) из 2 других таблиц - PullRequest
0 голосов
/ 01 ноября 2019

Добрый день!

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

Обычно я читаю и пишу данные SQL (1 таблица, со столбцами и данными строк), но я хотел бы знать, как бы я хотел создать реляционную базу данных, в которой я мог бы ссылаться как на данные своего офиса, так и на данные своего сотрудника в таблице tbl_accdb_assignment.

Т.е. ,Назначьте сотрудника в один офис, а также назначьте нескольких сотрудников, которые совместно работают и сидят в одном офисе (как показано в моем примере ниже в Excel для удобного просмотра)

Какой будет формат запроса SQL для ADD, УДАЛИТЬ И ОБНОВИТЬ данные офиса с данными о сотрудниках?

enter image description here

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Как это (вы можете расширить этот пример)

CREATE TABLE Office(ID INT PRIMARY KEY, Name VARCHAR(100));
CREATE TABLE Employee(ID INT PRIMARY KEY, Name VARCHAR(100));
CREATE TABLE OfficeEmployee(OfficeID INT, EmployeeID INT,
  CONSTRAINT PK_OfficeEmployee PRIMARY KEY (OfficeId, EmployeeID),
  CONSTRAINT FK_OfficeEmployee_EmployeeID__Employee_ID FOREIGN KEY (EmployeeID) REFERENCES Employee(ID),
  CONSTRAINT FK_OfficeEmployee_OfficeID__Office_ID FOREIGN KEY (OfficeID) REFERENCES Office(ID)
);
0 голосов
/ 01 ноября 2019

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

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

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