1

I work with symfony2 & doctrine ;

I have 2 entities : Question and Answer. Logically, i would make a 1:* relation to link them.

But since the Answer objects are not related to anything else, will never be indexed (or accessed) outside of their Question. So I make the Question persistent, with an attribute $answers which contains an array of Answers objects.

It worked fine until now. I want to take advantage of the Sonata Admin Forms, but it work only with a persistent layer (ORM or ODM).

So my questions will be :

  1. Is it "bad practice" to save a collection of objects in an persistent object attribute ?
  2. If I reverse my choice (make Answer Persistent), will it impact a lot my application ?
4

1 回答 1

1

是的,这一种不好的做法。而且是一个非常糟糕的。

我目前正在重构一个继承的应用程序,该应用程序具有存储在列中的大量序列化对象和数组,我想扼杀这些混蛋——我的意思是原始开发人员。

这样做会产生很多问题。例如,您不能使用其他语言的相同数据库。或者您甚至不能移动或重命名用于序列化的类,因为反序列化将不再起作用。它还使应用程序和数据库都难以掌握和维护。

作为一般规则,请保持您的数据库应用程序独立。也就是说,永远不要假设将使用数据库的特定语言或框架。始终设计数据库,以便它可以被用不同语言编写的应用程序访问,甚至可以直接从命令行执行简单的 SQL 查询。

如果没有其他东西能说服您,请记住,不稳定的人最终可能会继承您的代码。我们都听说过人们来办公室射击他们的同事的故事;)

于 2013-09-17T11:37:33.780 回答