我在我的数据库中创建了3个表:文件,文件内容和用户。在DB中建立关系和外键
的filecontents'
结构是这样的:
id___fileid___filesize___userid___version___path
。
的files'
是:
fileid___filesize___userid___filename___mimetype
而且users'
:
userid___username___password___email
那么我们应该如何关系和外键约束看起来像这样用户就可以拥有多文件,每个文件可以有多个版本所以fileid不应该是uniqe(我猜)。这就像 - 用户1
有文件ID 1
,2
,3
。用户2
有不同的文件,但他们的文件ID应该从1
重新开始。
Files.fileID,users.userID和filecontents.id对我来说都很像PK,而filecontents.fileID,Files.userId和filecontents.userID对我来说就像是外键。为什么files.fileID不是唯一的?为什么他们的fileID需要再次从1开始?这不是PK的本质。 – xQbert
因为我的应用程序的逻辑是每个用户的文件的ID是从1开始 – Alex
这听起来更像是一个显示问题,而不是DB设计之一。如果您需要订单,请添加一个“files.FileOrder”列,并从那里开始并递增。否则你会超载一个PK领域,如果他们以后想“重新排序”那些文件,可能会导致你头痛。 – xQbert