Orm 使用Doctrine2存储动态字段

Orm 使用Doctrine2存储动态字段,orm,doctrine-orm,Orm,Doctrine Orm,在我们的应用程序中,我们希望使用doctrine2,然而,我们想提供一个功能,但对于它如何工作,我完全感到困惑 我们希望客户能够为标准对象定义自定义字段。因此,这些字段将是动态生成的,而不是条令已知和映射的对象定义的一部分 我们的第一个想法是使用nosql(mongodb或amazon dynamodb)来存储一些数据,但由于我们希望使用条令来处理我们的核心对象,因此我们希望在条令的范围内实现这一点,而不必扩展到它之外来存储这些数据 我想到的一件事是,使用doctrine的能力来序列化/取消序列

在我们的应用程序中,我们希望使用doctrine2,然而,我们想提供一个功能,但对于它如何工作,我完全感到困惑

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

我们的第一个想法是使用nosql(mongodb或amazon dynamodb)来存储一些数据,但由于我们希望使用条令来处理我们的核心对象,因此我们希望在条令的范围内实现这一点,而不必扩展到它之外来存储这些数据

我想到的一件事是,使用doctrine的能力来序列化/取消序列化复杂对象,并且像散列一样将自定义字段名及其值作为对象中的一个额外属性,但是,这不允许我们拥有搜索这些字段的功能,如果我们想允许的话


谁曾试图用TrimeNe2或任何ORM变体来实现这一点?

< P>你可以考虑使用ORM ODM,这是教义2,但是对于NoSQL,我相信它们至少支持MangGDB。< /P> 另一种方法是如您所说的那样使用序列化。您可能不应该太担心搜索-我建议使用单独的全文搜索引擎(Solr、ElasticSearch或其他),因为它们为搜索提供了比SQL全文搜索更多的通用性和性能

第三,您可以将条令与NoSQL结合使用。在这种情况下,您可能应该将查询抽象为一个服务类或类似的类,这样您就可以使用条令从SQL数据库中查询数据,并使用其他方法查询其余的数据


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

我们还没有完全实现其中任何一列,但它们似乎都是解决问题的合法方法,谢谢!