我认为外键约束对于数据库的完整性非常有用,但在处理数百万且不断增长的表时,使用约束也是一个巨大的开销。
我想从我的应用程序中删除外键约束。在过去的symfony2项目中,我已经手动删除了约束,但我假设可能有一种方法可以简单地告诉symfony2这样做吗?
如果有人知道在框架内执行此操作的方法,请告诉我:)
修改
例如,在manyToMany关系中,它会使用正确的索引自动创建关系表,但它也会在两列上放置外键约束,或者如果我有一个oneToMany关系对该关系的外键约束。
我不希望创建这些外键约束。
答案 0 :(得分:2)
在Doctrine的JIRA中找到:
您可以禁用特定型号的外键导出:
User:
attributes:
export: tables
columns:
或使用php:
$userTable->setAttribute(Doctrine::ATTR_EXPORT, Doctrine::EXPORT_TABLES);
现在它只会导出表定义而不导出任何外键。您可以使用:none,tables,constraints,plugins或all。