基于ERD创建ERD和SQL表

基于ERD创建ERD和SQL表,sql,database-design,erd,Sql,Database Design,Erd,我的任务是根据给定的故事创建一个ERD,然后根据给定的信息制作表格并构建一个db 故事是: 有一家房地产公司: 待售房屋位于特定的街区 每个社区都是一个城市的一部分(我们知道,在一个城市中有许多社区) 每栋房子都来自一种房屋类型,例如:别墅、公寓、阁楼等 每栋房子都有一位业主,他是公司的客户 (房屋)出售给新业主(公司的客户),在出售中,客户只能购买一栋房屋 销售人员(公司员工)进行销售 每个销售员专门从事不同的房屋类型,有时有几个销售员专门从事相同的房屋类型 我想出的ERD如下所示: 我

我的任务是根据给定的故事创建一个ERD,然后根据给定的信息制作表格并构建一个db

故事是:

有一家房地产公司:

  • 待售房屋位于特定的街区
  • 每个社区都是一个城市的一部分(我们知道,在一个城市中有许多社区)
  • 每栋房子都来自一种房屋类型,例如:别墅、公寓、阁楼等
  • 每栋房子都有一位业主,他是公司的客户
  • (房屋)出售给新业主(公司的客户),在出售中,客户只能购买一栋房屋
  • 销售人员(公司员工)进行销售
  • 每个销售员专门从事不同的房屋类型,有时有几个销售员专门从事相同的房屋类型
我想出的ERD如下所示:

我成功构建的表包括:

我敢肯定,从ERD开始,我把一些桌子弄错了


在创建数据库之前,我非常感谢您对设置正确表的帮助。

我仔细检查了您的设计,确实需要进行一些改进,以正确地适应您的用例

正确实施了以下假设(但字段名称可以细化):

  • 待售房屋位于特定的邻里
    =>1-N关系,即
    邻里。邻里ID
    房屋。邻里ID

  • 每个街区都是一个城市的一部分(正如我们所知,在一个城市中有许多街区)
    =>1-N在
    city.CityID
    House.CityID

  • 每栋房子都来自一种房屋类型,例如:别墅、公寓、阁楼等。
    =>1-N
    HouseType.HouseTypeID
    house.HouseTypeID

以下假设未在您的架构中正确实现:

  • 每套房子都有一位业主,他是公司的客户这是一种1-N关系。您需要在
    House
    中创建一个名为
    CustomerID
    的新字段,该字段引用
    Customer.CustomerID
    。此外,您还需要创建一个新表,
    Company
    ,用于存储公司信息(不要将其存储在
    Customer
    表中!)。必须在表
    Customer
    中创建一个名为
    CompanyID
    的字段,该字段引用
    Company
    表的主键。在
    Customer
    表中不应该有
    HouseID

  • (房屋)出售给新所有者(公司的客户),在出售中,客户只能购买一栋房屋
    =>出售
    表将包含每次出售的一条记录。它引用了
    CustomerID
    SalesManID
    (详见)。在
    Customer
    表中不应该有
    SalesID

  • 销售是由销售人员(公司员工)进行的
    =>销售人员
    表应该有一个引用
    公司
    表的
    公司ID
    字段

  • 每个销售人员专门从事不同的房屋类型,有时有几个销售人员专门从事相同的房屋类型=>表中的
    saller
    应该有一个
    HouseTypeID
    字段,该字段引用
    HouseType
    表。应删除表
    SalesManToHouseType

另一点是,您应该简化字段的名称。不需要在字段名前加上表名,因为字段已经属于表了。。。这只有在处理外键时才有意义,在外键中,将目标表名放在引用字段名中是一个很好的做法

房屋
示例:

ID              -- not HouseID !
HouseTypeID     -- foreign key to field ID in table HouseType
NeighborhoodID  -- foreign key to field ID in table Neighborhood
CustomerID      -- foreign key to field ID in table Customer
Address
NumRooms
...
ID               -- not HouseTypeID !
Name             -- not HouseTypeName !
Description
房屋类型的示例

ID              -- not HouseID !
HouseTypeID     -- foreign key to field ID in table HouseType
NeighborhoodID  -- foreign key to field ID in table Neighborhood
CustomerID      -- foreign key to field ID in table Customer
Address
NumRooms
...
ID               -- not HouseTypeID !
Name             -- not HouseTypeName !
Description

这个问题清楚地说明了两个不同模型及其图表之间的差异。上图是ERD。下图是一个关系示意图。做得好。你的图表和我的有一个区别。当我学习ER建模时,您将属性放在ERD中。这使得分析更加完整,设计负担更少。请。仅将图像用于不能表示为文本或扩充文本的内容。包括一个图例/图例和带有图像的说明。Re“这对吗”:按照参考资料/教科书显示您的工作步骤,有理由——并不是所有的术语/符号都是标准的&我们不知道你遵循的是什么算法/方法&我们想检查你的工作,但不想重做它&当算法允许时,我们需要你的选择&否则我们无法告诉你哪里是对的或错的&我们不想重写你的教科书。请看,点击谷歌的“stackexchange家庭作业”和鼠标文本上方的投票箭头。