很多优秀的项目都没有主外键关系的
举个例子,一个张用户表,一张订单表,建立主外键关系
现在要删除这个用户,但是用户曾经有过订单(订单不能删除),你该怎么删除
约束表间关系的除了“主外键”,还有程序的逻辑性,触发器也可以
我们公司的2个网站,其中一个SQL2005的项目也是没有采用主外键的,其实这样做事很方便将来的扩展和更新的。必要的存储过程和系统视图到时必须的
这个倒不一定,如果设计时关系依存紧密的话,并且程序或表的触发器等控制处理得好的话,也是可以的!
如果在开发之初一定加上外键限制的话,很有可能会导致开发时有意外错误发生(例如:某字段确实可以剔除时)
当然,库表设计本来就是不断完善的,如果考虑充分的话,加上当然会更好
后期要改就费劲了,数据量大了难免有不在约束之内的,即使程序里面约束了也难免会有出格的数据,而没有约束在程序里也容易出现各种错误(关系特别简单的可能不会),绝大多数应该都是加主外键的
..........................
BC,不要主键