情况:用户将通过复选框/ mutliselect选择最多约10个选项。可能只有1个或最多10个选项被选中。我正在寻找将数据存储在mysql数据库中的最佳方法,以便:
(1)提取数据的查询速度很快。我不需要更新,对数据进行复杂的连接等,我只需要拉数据。 (2)需要最小的存储空间 (3)这是可扩展的,因为将来可能会在复选框中添加新选项 (4)为它编写代码(PHP)
并不繁琐选项:
序列化数据并存储在单个列/行中
将选中的每个选项存储为“选项名称”的单个列下的单独行
为每次提交存储一行。如果选择了该选项,则为每个选项添加一列,并标记一位
对什么是最好的想法?
答案 0 :(得分:0)
使用规范化。
使用主表创建用于存储选项的子表和外键约束。
答案 1 :(得分:0)
如果我是你,我会制作一个好的EER图表,并规范化数据库,除此之外,我们会看看InnoDB和MyISAM引擎,看看你应该在每个表格中使用哪个,如果你担心的话您的查询仍然可以使用工具来查看如何改进查询,但如果您将所有内容放在一个表中,一行,您甚至不会使用INDEX或者您的数据库将因重载信息而过载