当前位置: 代码迷 >> Sql Server >> 数据库设计的有关问题,如果做到有效性约束
  详细解决方案

数据库设计的有关问题,如果做到有效性约束

热度:101   发布时间:2016-04-24 09:10:36.0
数据库设计的问题,如果做到有效性约束?
举个例子,商品表goods(id,goods_name)

销售表sale(id,goods_id,price....)


现在要求当商品没有被使用的时候,商品信息是可以被删除的,一旦被使用,比如被插入了销售表,那么商品信息就不能被删除了

怎么样才能做到这样的约束呢?总不能我每次删除前都去别的表搜索一下吧,外键约束是否可以解决这个问题?
------解决思路----------------------
从性能方面考虑,不建议用外键约束,

可以在sale.goods_id上建索引,检查是否有使用没问题的.

或者在goods表增加1列:是否启用,即不实际删除,改为不启用即可.
------解决思路----------------------
外键约束 绝对可以,不过你删除的话会出错,将错误换成 可以理解的 提示信息。
比如:“该商品已出库,不能删除”等等。
  相关解决方案