我应该在每个 table 中都有标识列吗?
Should I have identity column in every table?
我知道这个问题可能看起来是重复的,但我想问问我的情况。在我的数据库中,我有两个 tables,一个用于用户,第二个用于该用户的图像。我的问题是我应该在图像 table 中有身份列吗?
我知道这个大问题(我应该在每个 table 中都有身份列吗?)有很多答案,大多数答案都说(这取决于你的情况),所以我想知道可能的情况是什么我应该怎么做?
是的,否则你无法从table图片中select用户对应的图片。 (如果您选择使用 2 tables。)
但是,如果用户只有 1 张图像与之关联,您可以在用户 table 中只包含一个 ImageSrc 列,其中包含该单个图像的 src
您不需要标识列。除非你有 table 连接到图像 table (例如图像细节或类似的东西),或者如果你需要按用户图像保存在数据库中的时间对用户图像进行排序,一个身份图片上的列 table 将毫无用处。在 userId + imageSrc 上拥有主键和聚集索引将为您提供更好的搜索。请注意,无论如何您都需要一个唯一的 ImageSrc,否则您可能会覆盖文件系统上的图像。
我知道这个问题可能看起来是重复的,但我想问问我的情况。在我的数据库中,我有两个 tables,一个用于用户,第二个用于该用户的图像。我的问题是我应该在图像 table 中有身份列吗?
我知道这个大问题(我应该在每个 table 中都有身份列吗?)有很多答案,大多数答案都说(这取决于你的情况),所以我想知道可能的情况是什么我应该怎么做?
是的,否则你无法从table图片中select用户对应的图片。 (如果您选择使用 2 tables。)
但是,如果用户只有 1 张图像与之关联,您可以在用户 table 中只包含一个 ImageSrc 列,其中包含该单个图像的 src
您不需要标识列。除非你有 table 连接到图像 table (例如图像细节或类似的东西),或者如果你需要按用户图像保存在数据库中的时间对用户图像进行排序,一个身份图片上的列 table 将毫无用处。在 userId + imageSrc 上拥有主键和聚集索引将为您提供更好的搜索。请注意,无论如何您都需要一个唯一的 ImageSrc,否则您可能会覆盖文件系统上的图像。