gpt4 book ai didi

sql - 数据库设计建议

转载 作者:行者123 更新时间:2023-12-04 13:46:25 25 4
gpt4 key购买 nike

我有一个可用的 SQLite 数据库,其中包含有关视频文件的信息。目前的设计如下图所示。但是,老板决定做一些改变。

enter image description here

FileProperties 表当前使用文件名作为主键。但是,PK 现在必须是 fileName 和(文件)location 的复合键,无论如何这更有意义。

如果这样做,那么在其他表中将此复合键作为外键引用的最佳方法是什么?我正在考虑创建一个单独的表,其中包含一个自动递增的主键、fileNamelocation。然后 PK 可以用作所有其他表的外键引用。

或者,在当前的FileProperties表中,将fileNamelocation作为组合键,并添加一个新的字段,可以作为引用并且该字段必须自增且在表中是唯一的。

我在设计数据库方面没有太多实践经验,因此非常欢迎对我的问题或我当前的设计提出任何建议。

最佳答案

绝对使用自增主键。为确保数据完整性,跨(文件名、位置)列创建唯一索引。

following wiki article简单谈谈自然键的优缺点。自然键是直接从数据中获取的键。在您的情况下,这将是(文件名,位置)的复合键。简而言之,自然键减少了数据所需的物理空间,代价是在所有关系中传播对键的更改。

我(几乎)总是在表上有一个自动递增的 ID,即使有可用的自然键也是如此。

关于sql - 数据库设计建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6055692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com