Database 在Symfony中是包含多个(80+;)字段的表还是多个一对一的表?

Database 在Symfony中是包含多个(80+;)字段的表还是多个一对一的表?,database,database-design,symfony1,doctrine,models,Database,Database Design,Symfony1,Doctrine,Models,我使用的是Symfony1.4,所以我的问题涉及数据库设计和原则 我有一个对象,它有大约80个特征。用户必须在4个步骤中填写所有特征,因此这些特征可分为4组。每组约有20个字段。其中一些是必须的,另一些不是 首先,我努力创建了1个主表和3个子表,因为在这种情况下,symfony可以使用数据库集合required字段创建不同的表单 然后,我发现。如果我按照建议将所有字段放在一个表中,我将不得不手动创建4个不同的表单并控制必填字段 我还想知道,哪种方法在Symfony中更有效。例如,所有4个表将永远

我使用的是Symfony1.4,所以我的问题涉及数据库设计和原则

我有一个对象,它有大约80个特征。用户必须在4个步骤中填写所有特征,因此这些特征可分为4组。每组约有20个字段。其中一些是必须的,另一些不是

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

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


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

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

另一种解释问题的方法: 如果表之间的关联始终是一对一的(记录必须存在于所有表中),我倾向于使用“一体式”表。如果某些表可能会丢失一条记录,那么拆分会更有吸引力

您还可以使用类似PostgreSQL(或RDBMS的等效工具)的方法来解决这个问题