【发布时间】:2011-05-18 16:48:40
【问题描述】:
我目前正在开发一个 Web 应用程序,它使用 MySQL 数据库作为后端,在我继续之前,我需要知道什么更适合我的情况。
简单地说,在这个应用程序中,用户将能够使用任何数字字段(他们决定)构建自己的表单,现在我将它们全部存储在由外键链接的几个表中。我的一个朋友建议,为了保持“简单/快速”,我应该将每个用户的表单转换为一个平面表,以便从他们那里查询数据保持快速(以防大幅增长)。
我应该使用外键(索引等)汇集到关系表中的所有内容来规范数据库,还是应该为用户创建的每个新表单构建平面表?
显然,创建平面表的一些好处是数据分离(安全)和查询速度会降低。但是说真的,我会从中获得多少收益?我真的不想要 10000 个表并且一直在删除、更改和添加,但如果它比我会做的更好......我只需要一些输入。
谢谢
【问题讨论】:
-
正常化,直到它受伤。 :)
-
不是一个真正的答案...但您始终可以使用维基百科作为指导。这是维基百科的数据库架构:commons.wikimedia.org/wiki/File:Mediawiki-database-schema.png
-
@shamazing 然后去规范化直到它工作。 80))
-
我最近也问了一个类似的问题,可能是换个角度programmers.stackexchange.com/questions/212822/…
标签: sql mysql normalization denormalization multiple-tables