我正在使用Symfony1.4,所以我的问题涉及数据库设计和Doctrine。
我有一个具有大约80个特征的对象。用户必须分4步填充所有这些,因此这些特征可分为4组。每组将有大约20个领域。其中一些必须是必需的,而另一些则不需要。
首先,我努力创建1个主表和3个子一对一表,因为在这种情况下,symfony可以使用数据库集必需字段创建不同的表单。
然后,我找到了this discussion。如果我按照建议将所有字段放在一个表中,我将不得不手动创建4个不同的表单并控制必填字段。
我也想知道,哪种方法在Symfony中更有效。例如,所有4个表将永远不会加入 - 最多2个表。
答案 0 :(得分:1)
不了解Symfony,但我将从数据库设计的角度谈谈。如果如你所说的那样,所有4个表永远不会被连接,根据查询和表的总大小,拆分它们可能是一个好主意。用户通常不是一个很大的表,因此性能不是问题,开发的简易性变得更加重要。但是如果你有几GB的用户......
解决问题的另一种方法: 如果表之间的关联始终是一对一的(记录必须存在于所有表中),我倾向于采用一对一的表格方式。如果某些表格可能会遗漏一条记录,那么拆分会变得更具吸引力。
你也可以用PostgreSQL hstore(或者你的RDBMS的等价物)来解决这个问题。