文件名作为主键?

pay*_*ing 2 database-design primary-key

我要为网站、文学、视频和图像创建一些表格。我不应该使用文件名作为主键是否有充分的理由。

例如...

“someimage.png”作为表格图像的PK。

我能想到的唯一缺点是,如果我在多个目录中命名了 someimage.png 并且每个目录 someimage.png 不是同一个图像。这似乎是糟糕的设计,无论如何我都没有理由这样做。

想法?

a1e*_*x07 6

一般而言,替代 PK 比天然 PK 更可取。通常,主键列永远不会更新;在您的情况下,重命名文件将需要更新主键,这反过来可能会导致级联更新。除此之外,从存储和性能的角度来看,拥有一个长主键从来都不是一个好主意。

取决于您使用的 RDMS,主键还可以定义行的存储方式(物理顺序),因此即使插入也会导致更多的页面拆分和高度碎片化。

总结。我强烈建议不要使用文件名作为主键。如果它们必须是唯一的,您始终可以选择创建唯一约束。