mysql - 存储琐事替代品的最佳方式?

标签 mysql sql database data-structures

我正在创建一个向用户提出问题并要求以国家/地区形式给出答案的应用程序。

例如:埃菲尔铁塔位于何处?

用户会看到许多备选方案,比方说 10 个不同的国家/地区。

当我想将每个答案存储到 mySQL 数据库时,问题就出现了。我有一张包含所有国家/地区的表格,需要存储问题中包含的国家/地区。但是,在这种情况下,这样做会为单个已回答问题创建 10 个数据库行。我一直在考虑将包含的国家/地区存储为位掩码,但对于超过 150 个可能的国家/地区,单个位掩码是不够的。

非常感谢任何有关存储数据的好方法的帮助!

谢谢!

最佳答案

我只是像您建议的那样将关系存储在表中。即,三个表,其中第一个包含问题(Id,question_text,..),第二个表包含所有国家(Id,name,..),第三个表包含说明哪个国家是哪个问题的选项的关系(question_id, country_id)。就像你说的,这在关系表中为一个问题提供了十行,但你真的在这里面临存储空间或性能问题吗?

如果你有 10k 个这样的问题,它仍然只有 100k 行和不到 1 兆字节的数据。问题本身将包含比这更多的数据,因此据我所知,问题与国家/地区之间的关系应该不是问题。

关于mysql - 存储琐事替代品的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12767590/

相关文章:

sql - 插入多个子查询作为值

专门用于二进制数据存储的数据库

php - 使用 INNER JOIN 显示多个结果

php - 如何根据提交的按钮执行 php 部分

mysql - 由于日期时间列的 #1067 错误,phpmyadmin 不允许更改结构

mysql - 使用 SQL 从字段中的任意位置提取分隔的子字符串

sql - MySQL 从临时表返回单行

c# - 我如何检查数据库的属性值C#

Mysql group post_id 按最大计数状态

php - 添加限制加速 mysql 查询,为什么?