代码组织 - 关系或存储库

时间:2014-10-16 11:01:30

标签: symfony

我想对您的代码组织有所了解。我有两个实体:城市和国家。我们之间有一个单向 ManyToOne,很多方面当然是City。

现在,我需要让所有城市都对应一个国家。我有两个选择:

  • 更改与bidirectionnal ManyToOne的关系
  • 在City repository中创建自定义方法

最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

取决于。如果这两个实体位于同一个Bundle中(或者在需要彼此存在的Bundle中),那么请将其设置为双向,特别是如果您认为这将是一个常见的搜索方式。

另一方面,如果这是一个特殊情况,实体在不同的Bundles中,你不想再进一步耦合它们,那么最好为它做一个自定义方法。

答案 1 :(得分:1)

这取决于您需要的数据类型和方式:

  • 如果您有Country对象且需要City对象,请将其设为2向ManyToOne
  • 如果您有国家/地区ID并且需要City对象,请向存储库添加查询
  • 如果您有国家/地区ID并且需要城市ID,请向存储库添加查询

@Erik的回答也是关于这个主题的好看法