我在我的数据库中创建了3个表:files,filecontents和users。
filecontents'
结构如下:
id___fileid___filesize___userid___version___path
。
files'
是:
fileid___filesize___userid___filename___mimetype
users'
:
userid___username___password___email
那么关系和外键约束应该如何,这样用户可以拥有多个文件,每个文件可以有多个版本,因此fileid应该是一个独特的(我猜)。它就像 - 用户1
有fileid 1
,2
,3
。用户2
包含不同的文件,但其文件ID应该从1
重新开始。
答案 0 :(得分:0)
据我所知,您在表格中只能有一个自动增量列。所以要做你想做的事,不应该是限制因素。
您需要使用SELECT fileid ORDER BY fileid DESC where userid = x
然后使用该fileid + 1插入新行。所以你会做类似的事情:
INSERT INTO xxx SET fileid=(SELECT fileid FROM files ORDER BY fileid DESC where userid=x), userid=x
话虽如此,如果fileid是主键而不是复合键,它应该是自动增量。因此,每个用户不应该有一组不同的fileid。
答案 1 :(得分:0)
user
和file
表之间的关系为one to many
。 user and file_contents
表的关系也是如此。 file
和file_contents
表之间的关系为one to one
。
Files.user_id
将是表foreign
中的users
密钥,其中primary
为密钥。 File_contents.user_id
也是foreign
密钥。 Files.fileID, users.userID and file_contents.id
是各自表格中的所有primary
个密钥。