1
我正在用Symfony2构建一个应用程序,并使用Doctrine作为我的ORM。用原则处理用户设置
我的用户需要存储大量特定于他们的配置/设置(想'想从我们那里收到电子邮件?'作为要存储的设置的典型示例)。
对我来说,构建这个最好的方法是什么?
我应该为每个设置的属性添加到我的用户实体吗?
protected $receiveEmails;
或者我应该创建一个“userSetting”的实体,与我的用户对象一个多对多的关系,并有userSetting实体有两个其他属性:
protected $setting;
protected $value;
?
我问的主要原因是性能。我更喜欢在用户对象上有一个属性,所以某些设置可以是布尔类型,其他字符串等,但不希望让我的站点从数据库中获取这些值,每次我获得当前用户实体(几乎每一个因为我的身份验证在我的数据库中关闭了用户实体)。
答案是?我需要回去重新写使用的任何实例:通过自定义库函数
....getRepository('AcmeMainBundle:User')->find($id)
只选择我需要的是形势的要素是什么?
还是我过度优化?
第二种选择是有道理的。我正确地假设走这条路线,除非我明确地调用我的用户对象上的getMySetting getter方法,否则我的'设置'实体都不会被加载? – Anonymous 2013-03-01 15:11:34
@anonymous,如果你让你的oneToOne加载设置始终会被加载。 – 2013-03-01 16:35:34