下面我有2个数据库表我正在考虑创建:
问题表:
QuestionId(PK) QuestionNo QuestionContent SessionId (FK)
11 1 Question1 3
12 2 Question2 3
13 3 Question3 3
Image_Question
ImageId (PK) SessionId (Fk) QuestionNo (FK)
1 3 1
2 3 2
由于我设置图像上传的方式,用户可以在将问题提交到db之前将图像上传到问题,因此只能确定图像属于我的html中的哪个问题就是使用QuestionNo html知道哪个问题上传了图像文件,因为在提交页面之前不会输入QuestionId。
我的问题是,是否可以将2个非唯一字段作为外键?
此外,如果我只是将SessionId设置为(FK)并且如果QuestionNo允许(FK),那么就设置在它自己的prblem上,因为有多个会话具有相同的QuestionNo
,如果我点击上面的QuestionNo
,它可以在包含QuestionNo
的所有会话中显示相同QuestionNo
的行。
我的另一个问题是如何合并SessionId
和QuestionNo
(FK),这样如果我在QuestionNo
下搜索,它会在相关QuestionNo
中搜索SessionId
{1}}?如果我点击SessionId
,则会显示SessionId
的详细信息,这样就可以了。
答案 0 :(得分:0)
我觉得你的问题有点难以理解,但从我可以收集的内容来看,你使用QuestionNo作为临时令牌将多个http请求链接在一起(图片上传+问题帖子)。
我建议像:
SessionQuestionToken
{
Token
SessionId
}
Image
{
ID
QuestionId FK references Question(Id)
ImageName
}
Question
{
Id
Content
}
TempImage
{
Token FK references SessionQuestionToken(token)
ImageName
}
这样的逻辑:
至于你的问题,如果外键仍然可以引用非唯一列,答案是肯定的。
答案 1 :(得分:0)
您可以在表格中引用多个外键。只需确保您的主键是唯一的。