1
3
在您的示例中,有两个表的参数,因为您有可以与两个不同事物关联的文件。
如果您将它们放在一个表中(并且希望允许用户拥有多张照片或简历),则需要两个链接表来关联文件->用户和文件->cms_页。可以说,这意味着HABTM关系,这是不正确的,允许不一致的数据。 双表方法比较简单,只允许文件与具有简单belongsto关系的正确实体类型相关联。 但我认为这个问题没有任何“正确”的答案,除非您需要为不同的文件类型存储不同类型的元数据。 还要确保存储或能够计算每个文件的mimetype,以便使用正确的HTTP头将其正确地服务回浏览器。 |
2
2
根据您所说的,我将在一个地方存储带有随机(UUID或不带)文件名的文件。然后我会有一个“附件”表或包含对所有外部文件的引用的东西。这个表还包含该文件的元数据,所以它是什么类型的文件(picture、cv等)等等。 但是,一个目录中的文件数量可能有严格的限制,这取决于您使用的是什么FS。 |
3
2
在不同的位置存储不同的文件可能有不同的原因。 首先,可以考虑限制一个目录中的文件数。 其次,安全性可能是一个问题——如果一些是公开的(例如,配置文件照片),而另一些不是公开的(例如,cvs),那么将它们放在不同的目录中更容易管理。 第三,如果文件被拆分,例如在文件资源管理器中浏览,或者管理备份,或者修改应用程序以跨多个位置拆分文件存储,那么简单的管理任务可能更容易。 还有文件名冲突的问题,但是如果重命名所有内容以匹配数据库ID字段(例如),那么这就不是问题。 但在一天结束时,这可能取决于数量和您自己的偏好。 |
4
2
只有在为每种文件类型存储其他元数据(因此,还有其他列)时,每个文件类型的不同表才具有相关性。如果每个文件类型的表只包含相同的列(例如,文件名、文件类型、上载日期等),那么将它们全部放在一个表上是有意义的。 |
Michael Samuel · MYSQL在以下情况下自动创建索引 6 年前 |
Patricia Rozario · 数据库设计确保一对一关系 6 年前 |
dryhay · MySQL“多对多”关系错误 6 年前 |
L. Fox · 我在这里用的是什么样的Laravel雄辩的关系 6 年前 |
Geoff Harper · 我应该如何构建关系松散的SQL db 6 年前 |
waroxx · SQL—当多个表具有相同的列时,最好怎么做 6 年前 |
Lumpi01 · SQL 2不同的注释类型-最佳解决方案? 6 年前 |
Hayreddin Tüzel · 预约系统数据库建模[关闭] 6 年前 |