不要用“引用次数”字段,因为如果程序出了问题,很可能这个值就会不正确,货品名称
之类的数据应该是基本数据,不应该在采购、销售程序中维护,而应该在专门的模块中维
护,在这个模块在删除一个货品时应先确定此货品没有被引用,这种情况采用外键的方式
比较好。
顺便说一下,外键用多了很不方便,我现在就是:
主 从 关系 主键
TableA -> TableB 一对多 TableB 在 TableA 基础上增加了字段,
TableB -> TableC 一对多 TableC 在 TableB 基础上增加了字段
操作中,用户要修改 TableA 表记录的主键字段值(输入时选错了),麻烦大了,只有
先记录下 TableC 、 TableB 的记录,再删除,再修改 TableA 的数据,再恢复 TableB、
TableC 的记录,太麻烦了,最后还是把外键删了。
我认为,在MIS开发中,外键的作用不大,只是在PD设计中可用直观地表述表之间的关系,
其数据一致性的工作大多还是由程序来维护的,因为我们不可能用DBMS出错的方式来提示
用户数据上的问题,应该尽量保证发往DBMS的操作是正确的,这样DBMS提供的一些功能,
诸如外键,充其量只能做辅助维护的工作,因为如果程序做的好,是不会触发DBMS的错误
的,这些DBMS的功能应该是空闲着才对,而滥用外键,反而会使程序变的复杂,就我上面
的例子,程序上就会控制好,不会出现插入外键以外的值,在修改、删除操作时,在事务
中来维护数据之间的关系,这样可以避免出现用户无法理解的DBMS返回的错误。
外键的使用应该视情况而定,你这种情况,用外键是应该的。
----个人看法,欢迎指正!