在MySQL中最佳存储复选框/多选

时间:2012-07-09 17:07:31

标签: mysql database checkbox relational

情况:用户将通过复选框/ mutliselect选择最多约10个选项。可能只有1个或最多10个选项被选中。我正在寻找将数据存储在mysql数据库中的最佳方法,以便:

(1)提取数据的查询速度很快。我不需要更新,对数据进行复杂的连接等,我只需要拉数据。 (2)需要最小的存储空间 (3)这是可扩展的,因为将来可能会在复选框中添加新选项 (4)为它编写代码(PHP)

并不繁琐

选项:

  1. 序列化数据并存储在单个列/行中

  2. 将选中的每个选项存储为“选项名称”的单个列下的单独行

  3. 为每次提交存储一行。如果选择了该选项,则为每个选项添加一列,并标记一位

  4. 对什么是最好的想法?

2 个答案:

答案 0 :(得分:0)

使用规范化

使用主表创建用于存储选项的子表和外键约束。

答案 1 :(得分:0)

如果我是你,我会制作一个好的EER图表,并规范化数据库,除此之外,我们会看看InnoDB和MyISAM引擎,看看你应该在每个表格中使用哪个,如果你担心的话您的查询仍然可以使用工具来查看如何改进查询,但如果您将所有内容放在一个表中,一行,您甚至不会使用INDEX或者您的数据库将因重载信息而过载