我使用symfony2&学说;
我有2个实体:Question
和Answer
。从逻辑上讲,我会建立一个1:*关系来链接它们。
但由于Answer
个对象与其他任何东西无关,因此永远不会在Question
之外编入索引(或访问)。所以我使用$ answers属性Question
持久化,其中包含Answer
个对象的数组。
直到现在一切正常。我想利用Sonata Admin Forms,但它只适用于持久层(ORM或ODM)。
所以我的问题将是:
答案 0 :(得分:1)
是的, 是一种不好的做法。还有一个非常糟糕的。
我目前正在重构一个继承的应用程序,它有很多序列化对象和存储在列中的数组,我想扼杀这些混蛋 - 我的意思是最初的开发人员。
这样做会产生很多问题。例如,您不能使用其他语言的同一数据库。或者您甚至无法移动或重命名用于序列化的类,因为反序列化将不再起作用。它还使应用程序和数据库难以掌握和维护。
作为一般规则,请保持数据库应用程序的独立性。也就是说,永远不要假设将使用数据库的特定语言或框架。始终设计数据库,以便可以使用不同语言编写的应用程序访问它,甚至可以直接从执行纯SQL查询的命令行访问。
如果没有别的东西让你信服,请记住,一个不稳定的人可能最终会继承你的代码。我们都听过人们上任和拍摄同事的故事;)