【问题标题】:Creating a new SQL relational database (MSSQL) from 2 other tables从其他 2 个表创建新的 SQL 关系数据库 (MSSQL)
【发布时间】:2020-02-27 21:31:54
【问题描述】:

美好的一天!

我真的需要你的帮助,因为我在 MSSQL 和构建关系数据库方面处于陌生领域。

我通常读取和写入 SQL 数据(1 个表,包含列和行数据),但我想知道我将如何创建一个关系数据库,我可以在其中引用我的办公室数据和我的员工数据表 tbl_accdb_assignment。

即。将一名员工分配到一个办公室,但同时也分配多名共享并坐在同一个办公室的员工(如下面的 Excel 示例所示,便于查看)

使用员工数据添加、删除和更新办公室数据的 SQL 查询格式是什么?

【问题讨论】:

    标签: sql sql-server database sql-server-2008 database-design


    【解决方案1】:

    像这样(你可以扩展这个例子)

    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)
    );
    

    【讨论】:

    • 我从服务器收到一个错误:外键 'FK_OfficeEmployee_EmployeeID__Employee_ID' 引用了无效的表 'Employee.ID'。无法创建约束或索引。查看以前的错误。
    • 要解决此问题,您需要将 REFERENCES Employee.ID 更改为 REFERENCES Employee (ID),并将相同的语法应用于其他外键。
    【解决方案2】:

    基本上,您将有一个包含员工信息的表格和一个单独的表格,用于跟踪建筑物中的位置。您将使用外键和主键来链接这两个表。为确保您在多个地点没有任何员工,如果在地点表上不止一次找到员工,您必须写支票将其踢出。

    对于这样的示例,我可能有三个表,一个员工表,一个位置表,以及一个链接这两个表的员工位置表。希望这会有所帮助。

    【讨论】:

    • 这听起来不错,但我不知道如何用 SQL 编写。
    • 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) );我修复了 Caius Jard 在下面发布的代码。这应该适合你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多