在“qsn和评论”表中加入“员工”和“客户”实体?

时间:2012-07-08 15:40:05

标签: database entity-relationship

我想制作一张桌子,我可以将这四种关系加在一起......问题是客户可以提出很多问题,工作人员可以回复问题,并且两人都可以对问题发表评论。

          1   m
 Question ------ Comment 

如何添加员工和客户实体?

我看起来像这样,但我发现我的关系是奇怪的

          1   m
 Question ------ Comment 
    |               |
    | m             | m
    |               |
    | 1             | 1  
    |               |        
  Customer        Staff

1 个答案:

答案 0 :(得分:0)

  

客户可以提出许多问题,工作人员可以回答问题   两者都可以对问题发表评论

您的实体是客户,员工,问题,回复(您在图表中省略了)和评论。

您可以考虑定义一个用户实体,该实体将成为"超类" (以客户为导向的术语)客户和员工。一些RDBMS-es支持一种表继承,例如PostgreSQL,或者你必须通过外键自己实现它,或者只是拥有一个带有"类型的用户表"您可以设置为" customer"的列或"员工"。这是实现细节。但是,您选择实现此目的:

  1. 客户可以创建问题,并且他们之间存在1:N的关系。
  2. 工作人员可能会创建回复项目,并且他们之间再次建立1:N的关系。
  3. 一个问题可能有很多回复。
  4. 一个问题可能有很多评论。
  5. 评论可以由用户(即客户和员工)创建。同样,一个用户可能有很多评论,一个问题也可能有很多评论。
  6. 这些似乎是你的实体和他们的关系。希望这有点帮助,不会来得太晚(很可能你也同时想出来了:-))。