Sql 房地产开发的ERD

Sql 房地产开发的ERD,sql,sql-server,database,Sql,Sql Server,Database,我已经尝试为下面的场景创建一个ERD,这就是我得到的。。。但我有一种感觉,我可能会错过一些东西,或者这样可以吗? 顺便说一下,数据需要标准化3NF 情景 Samuels Property Development是一家总部位于英国曼彻斯特的建筑公司。该公司希望您设计并实现一个满足其业务需求的数据库。这些要求在本场景和公司保存的纸质文件示例中有详细说明,如下所示。 Samuels Property Development专门代表客户管理高价值项目。客户可能有许多项目,但每个项目都分配给特定的客户。项

我已经尝试为下面的场景创建一个ERD,这就是我得到的。。。但我有一种感觉,我可能会错过一些东西,或者这样可以吗? 顺便说一下,数据需要标准化3NF

情景 Samuels Property Development是一家总部位于英国曼彻斯特的建筑公司。该公司希望您设计并实现一个满足其业务需求的数据库。这些要求在本场景和公司保存的纸质文件示例中有详细说明,如下所示。 Samuels Property Development专门代表客户管理高价值项目。客户可能有许多项目,但每个项目都分配给特定的客户。项目按类型分类。每个项目可以指派一名或多名工作人员,但单个工作人员在特定时间只能处理一个项目。项目由砖、木材和玻璃等材料制成。一个项目中可能有许多材料。材料从指定供应商处获得

以下是我到目前为止的SQL查询:

-- STEP 1: Create lowry_property database
CREATE DATABASE lowry_property
GO
USE lowry_property;

-- STEP 2: Create ProjectType table
GO
CREATE TABLE ProjectType
(
    ProjectTypeID int IDENTITY(1,1) PRIMARY KEY,
    ProjectTypeName nvarchar(50) NOT NULL,
    ProjectAddress nvarchar(255)
);

-- STEP 3: Create Supplier table
GO
CREATE TABLE Supplier
(
    SupplierID int IDENTITY(1,1) PRIMARY KEY,
    SupplierName nvarchar(50) NOT NULL,
    SupplierCity nvarchar(50),
    SupplierAddress nvarchar(255)
);

-- STEP 4: Create Material table
GO
CREATE TABLE Material
(
    MaterialID int IDENTITY(1,1) PRIMARY KEY,
    MaterialName nvarchar(50) NOT NULL,
    SupplierID int NOT NULL
        FOREIGN KEY REFERENCES Supplier (SupplierID)
);

-- STEP 5: Create StaffType table
GO
CREATE TABLE StaffType
(
    StaffTypeID int IDENTITY(1,1) PRIMARY KEY,
    StaffTypeName nvarchar(50) NOT NULL
);


-- STEP 7: Create Staff table
GO
CREATE TABLE Staff
(
    StaffID int IDENTITY(1,1) PRIMARY KEY,
    StaffFirstName nvarchar(50) NOT NULL,
    StaffLastName nvarchar(50) NOT NULL,
    StaffTypID int NOT NULL
        FOREIGN KEY REFERENCES StaffType (StaffTypeID)
);

-- STEP 8: Create Project table

CREATE TABLE Project
(
    ProjectID int IDENTITY(1,1) PRIMARY KEY,
    ProjectName nvarchar(255),
    ProjectTypeID int NOT NULL
        FOREIGN KEY REFERENCES ProjectType (ProjectTypeID),
    ProjectStartDate date,
    ProjectEndDate date,
    StaffID int NOT NULL
        FOREIGN KEY REFERENCES Staff (StaffID),
    MaterialID int NOT NULL
        FOREIGN KEY REFERENCES Material (MaterialID)
);

-- STEP 9: Create County table
GO
CREATE TABLE County 
(
    CountyID int IDENTITY(1,1) PRIMARY KEY,
    CountyName nvarchar(50) NOT NULL
);

-- STEP 10: Create City table
GO
CREATE TABLE City 
(
    CityID int IDENTITY(1,1) PRIMARY KEY,
    City nvarchar(100) NOT NULL
);

-- STEP 11: Create Address table
GO
CREATE TABLE Address 
(
    AddressID int IDENTITY(1,1) PRIMARY KEY,
    Street nvarchar(255) NOT NULL,
    PostCode nvarchar(15) NOT NULL,
);

-- STEP 12: Create Client table
GO
CREATE TABLE Client
(
    ClientID int IDENTITY(1,1) PRIMARY KEY,
    ClientFirstName nvarchar(50) NOT NULL,
    ClientLastName nvarchar(50) NOT NULL,
    ClientAddress nvarchar(255),
    CountyID int NOT NULL
        FOREIGN KEY REFERENCES County (CountyID),
    CityID int NOT NULL
        FOREIGN KEY REFERENCES City (CityID),
    AddressID int NOT NULL
        FOREIGN KEY REFERENCES Address (AddressID),
    ProjectID int NOT NULL
        FOREIGN KEY REFERENCES Project (ProjectID)
);

学校作业还是类似的?我在家里做一些私人学习,这就是我遇到的一个例子。试图解决它,尽管我不确定我是否在正确的轨道上。