做项目时应怎样注意外键关系
1个回答
2012-04-25
展开全部
对于 外键
不同公司处理的机制不同的.
某些公司, 是不显示定义外键的.
表关联的时候, 自己 写关联条件。
这种方式的好处是, 开发阶段, 可能要经常清理数据。 没有外键约束, 可以自由清除。
缺点嘛, 就是 如果你的项目,访问数据库的代码, 是 ORM 工具生成的话。 例如 微软的 Linq to SQL 或者 Entity Framework. 如果你没有外键, 工具不会自动生成关联。
某些公司, 是显示定义外键的.
好处就是 数据完整性有保障。ORM 工具生成代码的时候,可以帮你把关联属性生成出来。
缺点嘛, 假如你开发阶段, 会经常清理测试数据的话, 恐怕有点麻烦。
因为有外键的表。好像没法 TRUNCATE TABLE 快速把数据处理掉 ( 我用的是 SQL Server )
你要写 .sql 脚本清理数据的话。
要自己定义好删除的顺序。也就是 对于一对多, 要先删除子表的数据, 后删除主表的数据。
或者批量的暂时禁用所有的外键,清除数据,最后恢复外键。
不同公司处理的机制不同的.
某些公司, 是不显示定义外键的.
表关联的时候, 自己 写关联条件。
这种方式的好处是, 开发阶段, 可能要经常清理数据。 没有外键约束, 可以自由清除。
缺点嘛, 就是 如果你的项目,访问数据库的代码, 是 ORM 工具生成的话。 例如 微软的 Linq to SQL 或者 Entity Framework. 如果你没有外键, 工具不会自动生成关联。
某些公司, 是显示定义外键的.
好处就是 数据完整性有保障。ORM 工具生成代码的时候,可以帮你把关联属性生成出来。
缺点嘛, 假如你开发阶段, 会经常清理测试数据的话, 恐怕有点麻烦。
因为有外键的表。好像没法 TRUNCATE TABLE 快速把数据处理掉 ( 我用的是 SQL Server )
你要写 .sql 脚本清理数据的话。
要自己定义好删除的顺序。也就是 对于一对多, 要先删除子表的数据, 后删除主表的数据。
或者批量的暂时禁用所有的外键,清除数据,最后恢复外键。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询