0

情况:用户将通过复选框/多选选择最多 10 个选项。选择的选项可能少至 1 个,也可多达 10 个。我正在寻找将数据存储在 mysql 数据库中的最佳方法,例如:

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

选项:

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

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

  3. 为每个提交存储一行。如果选择了该选项,则每个选项都有一列,并带有一点标记

关于什么是最好的任何想法?

4

2 回答 2

0

使用规范化

使用主表的外键约束分别制作用于存储选项的子表。

于 2012-07-09T17:12:31.073 回答
0

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

于 2012-07-09T17:20:26.663 回答