在Symfony中有多个(80+)字段或几个一对一表的表?

时间:2011-04-06 10:18:25

标签: database database-design symfony1 doctrine models

我正在使用Symfony1.4,所以我的问题涉及数据库设计和Doctrine。

我有一个具有大约80个特征的对象。用户必须分4步填充所有这些,因此这些特征可分为4组。每组将有大约20个领域。其中一些必须是必需的,而另一些则不需要。

首先,我努力创建1个主表和3个子一对一表,因为在这种情况下,symfony可以使用数据库集必需字段创建不同的表单。

然后,我找到了this discussion。如果我按照建议将所有字段放在一个表中,我将不得不手动创建4个不同的表单并控制必填字段。

我也想知道,哪种方法在Symfony中更有效。例如,所有4个表将永远不会加入 - 最多2个表。

1 个答案:

答案 0 :(得分:1)

不了解Symfony,但我将从数据库设计的角度谈谈。如果如你所说的那样,所有4个表永远不会被连接,根据查询和表的总大小,拆分它们可能是一个好主意。用户通常不是一个很大的表,因此性能不是问题,开发的简易性变得更加重要。但是如果你有几GB的用户......

解决问题的另一种方法: 如果表之间的关联始终是一对一的(记录必须存在于所有表中),我倾向于采用一对一的表格方式。如果某些表格可能会遗漏一条记录,那么拆分会变得更具吸引力。

你也可以用PostgreSQL hstore(或者你的RDBMS的等价物)来解决这个问题。