SQL - 强制表之间的约束

时间:2012-01-15 19:54:40

标签: sql

我想在SQL中模拟工厂经理的访问。

我想要强制执行4个约束:

  1. 在任何访问中,都有至少一位参与此次访问的经理。

  2. 经理可以多次访问同一家工厂,但是在不同的日子里。

  3. 经理可以在生日那天参观很多工厂。

  4. 最多可以在工厂进行一次访问。

  5. 我构建了下一个2表:

    visit-Factory(Name Factory, date, during, summary)
    \\where Name Factory, date are PK
    
    visit-manager(Name Factory, data, manager)
    \\ where Name Factory, date, manager are pk
    

    这最后执行3,但第一个没有强制执行。

    有什么想法吗?感谢

1 个答案:

答案 0 :(得分:0)

在良好的规范化数据库设计中,您需要确保最少的数据重复。

有鉴于此,请查看您当前的设计,并了解可以删除此类重复的位置。

我不知道您是否已经了解了实体以及如何对它们进行建模,但如果您这样做了,请考虑您需要的不同实体。