【发布时间】:2011-05-19 08:14:52
【问题描述】:
我有一个有效的 SQLite 数据库,其中包含有关视频文件的信息。目前的设计如下图所示。但是,老板决定做出一些改变。
FileProperties 表当前使用文件名作为主键。但是,现在 PK 必须是 fileName 和 (file) location 的复合键,无论如何这更有意义。
如果这样做,在其他表中将此复合键作为外键引用的最佳方法是什么?我正在考虑创建一个单独的表来保存自动递增的主键、fileName 和 location。然后 PK 可以用作所有其他表的外键引用。
或者,将 fileName 和 location 设为当前 FileProperties 表中的复合键,并添加一个可用作参考的新字段并且该字段必须是自动递增的并且在表中是唯一的。
我在设计数据库方面没有太多实践经验,因此非常欢迎对我的问题或我当前的设计提出任何建议。
【问题讨论】:
-
确保您的文件名和位置足够大。如果“位置”是路径,那么它很可能大于 50。此外,NVARCHAR 可能是文件名的更好选择。
-
+1 大火。 NVARCHAR 应该是默认值,除非很有可能需要更大的空间。尤其是 Oracle - 文本字段存储为大对象,使用起来很痛苦。
标签: sql database-design