新到公司,发现数据库表建立的时候没有主键与表与表之间没有外键?

2025-01-05 13:00:30
推荐回答(5个)
回答1:

很多优秀的项目都没有主外键关系的

举个例子,一个张用户表,一张订单表,建立主外键关系
现在要删除这个用户,但是用户曾经有过订单(订单不能删除),你该怎么删除

约束表间关系的除了“主外键”,还有程序的逻辑性,触发器也可以

回答2:

我们公司的2个网站,其中一个SQL2005的项目也是没有采用主外键的,其实这样做事很方便将来的扩展和更新的。必要的存储过程和系统视图到时必须的

回答3:

这个倒不一定,如果设计时关系依存紧密的话,并且程序或表的触发器等控制处理得好的话,也是可以的!
如果在开发之初一定加上外键限制的话,很有可能会导致开发时有意外错误发生(例如:某字段确实可以剔除时)
当然,库表设计本来就是不断完善的,如果考虑充分的话,加上当然会更好

回答4:

后期要改就费劲了,数据量大了难免有不在约束之内的,即使程序里面约束了也难免会有出格的数据,而没有约束在程序里也容易出现各种错误(关系特别简单的可能不会),绝大多数应该都是加主外键的

回答5:

..........................

BC,不要主键