sql - 我应该使用平面表还是规范化数据库?

标签 sql mysql normalization denormalization multiple-tables

我目前正在开发一个使用 MySQL 数据库作为后端的 Web 应用程序,在继续之前,我需要知道什么更适合我的情况。

简单地说,在这个应用程序中,用户将能够使用任何数字字段(他们决定)构建自己的表单,现在我将它们全部存储在由外键链接的几个表中。我的一个 friend 建议,为了让事情“简单/快速”,我应该将每个用户的表单转换为一个平面表,以便从他们那里查询数据保持快速(以防大幅增长)。

我应该使用外键(索引等)汇集到关系表中的所有内容来规范数据库,还是应该为用户创建的每个新表单构建平面表?

显然,创建平面表的一些好处是数据分离(安全)和查询速度会降低。但是说真的,我会从中获得多少 yield ?我真的不想要 10000 个表并且一直在删除、更改和添加,但如果它比我会做的更好......我只需要一些输入。

谢谢

最佳答案

经验法则。从规范化到非规范化比反过来更容易。

从合理水平的数据库规范化开始(合理的意思是可读、可维护和高效但不会过早优化),然后如果您在增长过程中遇到性能问题,您可以选择研究非规范化可能的方式提高性能。

关于sql - 我应该使用平面表还是规范化数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4328022/

相关文章:

mysql - 如何在iron python上安装使用sqlobject+mysql?

machine-learning - 机器学习中的数据有必要标准化吗?

SQL:将一行分成多行(规范化)

Mysql - 时间戳列不更新

mysql - 连接四个表

sql - 使用DISTINCT和LIMIT的子查询

python - sklearn.preprocessing.normalize 中的范数参数

mysql - SQL 最大匹配项

php - 尝试让我的登录代码正常工作

PHP 和 MySQL 基于时间的测验应用程序