我目前正在开发一个使用 MySQL 数据库作为后端的 Web 应用程序,在继续之前,我需要知道什么更适合我的情况。
简单地说,在这个应用程序中,用户将能够使用任何数字字段(他们决定)构建自己的表单,现在我将它们全部存储在由外键链接的几个表中。我的一个 friend 建议,为了让事情“简单/快速”,我应该将每个用户的表单转换为一个平面表,以便从他们那里查询数据保持快速(以防大幅增长)。
我应该使用外键(索引等)汇集到关系表中的所有内容来规范数据库,还是应该为用户创建的每个新表单构建平面表?
显然,创建平面表的一些好处是数据分离(安全)和查询速度会降低。但是说真的,我会从中获得多少 yield ?我真的不想要 10000 个表并且一直在删除、更改和添加,但如果它比我会做的更好......我只需要一些输入。
谢谢
最佳答案
经验法则。从规范化到非规范化比反过来更容易。
从合理水平的数据库规范化开始(合理的意思是可读、可维护和高效但不会过早优化),然后如果您在增长过程中遇到性能问题,您可以选择研究非规范化可能的方式提高性能。
关于sql - 我应该使用平面表还是规范化数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4328022/