我有四个表在MSSQL 2012数据库,我找不到了,如果我需要改变设计或与我所做的约束,我认为坚持是有点麻烦尽管它有效。请看下面的玩具,例如:维持表外部约束引用具有共同的参考表两张表
考虑到贷款了书籍和杂志,想跟踪贷款的库。值得注意的是杂志和贷款有不同的状态,所以我最终得到这些表格:
- MediaType(ID,Name)例如: {“Book”,“Magazine”}
- Media(ID,Name,MediaType) {(“飘”,1),(时间,2)}
- MediaState(ID,State,MediaType) {( “行贷款”,1),( “保留”,1),( “可用”,2),( “脱销”,2)}
- 日志(ID,时间,媒体,MediaState)
我如何确保不会出现状态缺货的书籍?
我目前的解决方案是让一个检查约束的日志调用函数checkStates()来检查,如果下面的计数大于0:
SELECT count(*) FROM Logs l INNER JOIN Media m ON l.Media = m.ID INNER JOIN MediaState ms ON ms.ID = m.MediaState WHERE m.MediaType != ms.MediaType
表格中每个单元的数量在哪里? – 2014-09-21 11:05:18
它是一个玩具的例子,所以不需要数量 – 2014-09-21 19:53:56