如果我只有几对多,我还应该使用多对多数据库结构吗?

时间:2011-06-29 20:06:45

标签: php mysql html webforms

我是网络开发的新手,可以真正使用一些建议。提前谢谢大家!

我有一个表格,我要求用户在1到10之间评估他们在几个方面(心理,身体,乐趣)的经验。总共大约有10个区域。使用areaID和userID制作区域表和交叉表是否值得?在这种情况下,创建一个包含11列的表(每个区域一个加上一个用户ID)会不会更容易?

据我所知,带有areaID键的'areas'表是最强大的,并允许我稍后添加更多区域,但我真的不认为自己这样做了。另外,正如我只希望< 1000个用户那样,在MySQL数据库中添加另一个列会有很多工作吗?

最后,我实际上应该使用多对多结构的截止点是什么?后来在表格中,我有用户从1到4对30个字段进行评分。我应该在那里使用两个表系统吗?

再次感谢!

5 个答案:

答案 0 :(得分:4)

最好使用单独的子表。连接的SQL开销很小,您可以完全灵活地选择允许的条目数/几个,而无需更改数据库结构。

现在可能只有10个区域,但是PHB在发布前一个小时就改变了对“基岩”的看法而臭名昭着。

答案 1 :(得分:4)

总是使用正确的交集表建立多对多关系,因为你永远不会预测将来会带来什么。

答案 2 :(得分:2)

假设您要计算每个用户的区域数。如果你使用一个包含11列的表,你会怎么做?

使用交集表实现此功能。你会很高兴的。

答案 3 :(得分:1)

两者都有道理,但我会选择多对多方法,然后您可以在区域表中指定每个区域的名称(并且可以添加一些注释,特定区域的含义为1或10,等等。 。)

答案 4 :(得分:0)

对此没有错误的答案,但请考虑一下:你确定这个数字会保持固定在10吗?

就个人而言,我仍然会使用多对多的关系。这是更优雅的解决方案,在我看来,更好。但是,做好工作往往是浪费时间。