MySQL:许多表将FK与一个表 - 是或否?

时间:2012-07-14 12:33:28

标签: mysql

我即将扩展另外50多个表的数据库架构(在MySQL中)。其中大约15-20个将引用表File(wchich存储我项目中创建或上传文件的数据)问题是,我应该使用什么程序:

  • 将该情景保留为原样
  • 为每个表创建自己的File

我问,因为,如果我选择第一个选项,某个File会有大量行进行CRUD操作(使用where clausule)慢(我猜)。那么,您认为什么是最好的想法?

1 个答案:

答案 0 :(得分:1)

保留一个由所有其他人引用的中心File表,除非File中存储的不同类型行的属性明显不同。换句话说,如果要在File表中为不同的关联类型存储不同的文件元数据集,您可能会发现必须为不同的元数据类型提供不同的文件存储表。

但是,如果您通常为所有关联类型存储同一组文件二进制数据,文件名,MIME类型等,则它属于一个表。

如果预计该表会变得非常大,请考虑partitioning其存储空间。通过适当的索引,CRUD操作可以在数百万行上执行。