3

在我们的应用程序中,我们希望使用教义2,但是,我们想要提供一个功能,但对它的工作方式完全感到困惑。

我们希望我们的客户能够为我们的标准对象定义自定义字段。因此,这些字段将是即时生成的,而不是教义已知和映射的对象定义的一部分。

我们的第一个想法是使用 nosql(mongodb 或 amazon dynamodb)来存储其中的一些数据,但是由于我们想使用学说来处理我们的核心对象,我们希望保持在学说的范围内来实现这一点而不必扩展超越它来存储这些数据。

我想到的一件事是使用教义序列化/反序列化复杂对象的能力,并且只是将自定义字段名称及其值的散列作为对象中的额外属性,但是,这不允许我们拥有可以搜索的功能如果我们想允许这些字段...

有没有人尝试过用教义 2 或任何 orm 变体来做到这一点?

4

1 回答 1

2

您可以考虑使用 Doctrine ODM,它是 Doctrine 2,但适用于 NoSQL——我相信它们至少支持 MongoDB。

另一种方法是使用您所说的序列化。您可能不应该过多担心搜索 - 我建议使用单独的全文搜索引擎(Solr、ElasticSearch 或其他),因为它们为搜索提供了比 SQL 全文搜索更多的多功能性和性能。

第三,您可以将 Doctrine 与 NoSQL 一起使用。在这种情况下,您可能应该将查询抽象为服务类等,以便您可以使用 Doctrine 从 SQL DB 中查询数据,并使用其他方法查询剩余数据。

最后,您可以考虑使用键值表。一列表示键,另一列表示值。

于 2012-05-04T15:25:26.907 回答