sql - 我应该在每个表中都有标识列吗?

标签 sql sql-server database-design

我知道这个问题可能看起来是重复的,但我提出了我的情况。在我的数据库中,我有两个表,一个用于用户,第二个用于该用户的图像。我的问题是我应该在图像表中有标识列吗?

enter image description here

我知道这个大问题(我应该在每个表中都有身份列吗?)有很多答案,而且大多数答案都是这样说的(这取决于您的情况),所以我想知道在可能的情况下我应该怎么做?

最佳答案

您不需要标识列。除非您有连接到图像表的表(例如图像详细信息或类似的东西),或者如果您需要按用户图像保存在数据库中的时间对用户图像进行排序,图像表上的标识列将没用。在 userId + imageSrc 上拥有主键和聚集索引将为您提供更好的搜索。请注意,无论如何您都需要一个唯一的 ImageSrc,否则您可能会覆盖文件系统上的图像。

关于sql - 我应该在每个表中都有标识列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31088199/

相关文章:

mysql - 选择两个日期之间的事件的最佳 SQL 查询

sql-server - SQL 使用 OpenXML 检索多个元素

c# - SQL 查询通配符搜索

ruby-on-rails - 动态数据的数据库设计

c# - 将导航属性映射到实例变量作为外键

SQL Get Parent when child is column is 0

mysql - 如何识别未随时间变化的条目?

sql-server - 如何查看存储函数 - SQL Server

mysql - 索引 'enabled' 字段好主意?

sql - Postgres 数据操作