如何在学说中实现一组有限的“标签”?

时间:2012-07-18 20:52:45

标签: php doctrine-orm

关于我的数据: 我目前正在使用php / symfony2 / doctrine / postgres开发一个小网页。基本上,我只是收集并显示来自几个站点的数据。数据分为四组:“孩子”,“青少年”,“成年人”,“老年人”。这些标签不会长时间改变。我想显示一个过滤器,您可以在其中决定要查看哪些数据。由于80%的用户都是成年人,因此这应该是默认用户。同样对于青少年来说,同时查看青少年和成人的数据会很有趣(=>多选)。

问题: 在我的DataObject中保留这4个标签('k','t','a','s')的最佳方法是什么 每个DataObject必须至少有一个标记。

我想出了可能的解决方案:

1)将Tag实现为String(或伪枚举)并将它们存储在DataObject的ArrayCollection中

=>似乎有点矫枉过正

2)将标签存储在一个数组中(ColumnType = array)

=>很难用学说查询

3)将每个标记存储为DataObject

中的布尔列

=>感觉不对

我对这些解决方案都不满意。有什么建议我应该做什么?

编辑: 我测试了很多,并考虑了我的问题,并发现我最大的问题是'多选'。所以我放弃了它并将标签实现为String / Enum。

0 个答案:

没有答案