如何在数据库中存储有用的多项选择?

时间:2013-12-07 20:03:18

标签: mysql database database-schema

这就是如何在数据库中以最有效的方式存储内容。 这里最重要的是不要尽可能多地节省空间 - 重点放在使用这些数据的最快方式上。

所以一般来说这很简单:

我们有10个无线电盒选择 - 我们可以选择全部或者我们可以选择无 - 或者只选择一个/一些'。

所以一般来说,我会看到两个将结果保存在我的数据库中的常规选项:

A)用Tinyint(1)在我的桌子上制作10个字段并设置0或1

B)我可以使用ONE Int(7),它有机会像二进制系统一样解码结果 - f.E.如果你选择选项3,5和8它像00101001。

所以问题是哪个更有意义?

B只需要4个字节,A将需要8个字节 - 除了B需要一个简短的PHP函数来解码二进制文件。

现在的问题是,如果数据库得到了很多查询,你认为哪个选项迟早会更好用?

1 个答案:

答案 0 :(得分:0)

拥有10个不同的字段可能会更好,除非您知道每个查询总是需要所有10个字段。

程序员会更容易(不一定要计算位向量)。添加新列或删除它们更容易。您可以在某些列上放置小而快的索引,但不是全部。