问题表:

QuestionId (PK)  QuestionNo  QuestionContent SessionId
11               1           blah            4
12               2           blah blah       4
13               1           BLAH            5
14               2           BLAH BLAH       5

图像问题表:
Image_QuestionId (PK) ImageId (FK) SessionId (FK) QuestionNo
4                     6              4              1

会话表:
SessionId SessionName
4         DFOFK
5         FEOWF

上面有三张桌子。现在,如果查看SessionId表中的Image Question,它是Session表的外键,因此如果单击SessionId表中的Image_Question值,它将显示Session表中的Session详细信息。
现在我在Image Question表中有另一个列,它还没有分配外键,这就是QuestionNo字段。现在这不是任何表中的主键,但是我需要使用这个字段来知道图像属于哪个问题。无论如何,这不是问题所在。
我的问题是,如果我将QuestionNo表中的Image_Question设置为FK,那么如果我单击QuestionNo's表中的Image_Question值,那么它将在所有会话中显示所有QuestionNo,即1。我不想这样,我想查找问题编号所属的QuestionNo中的SessionId
所以我的问题是如何在sql中设置QuestionNo外键,以便它将SessionIdQuestionNo字段连接在一起,从而创建一个唯一的SessionId/QuestionNo约束。

最佳答案

对于图像,您知道sessionid和questionid,因此您可以先输入一个空问题,然后获取questionid并在图像表中使用它。当你得到问题信息时,你可以更新问题表。
然而,这不是好的做法。
在提交问题之前,您不应该将映像提交给问题,这些映像应该保存在业务层中,直到您拥有全部信息,然后将它们提交给永久ant存储。

关于mysql - 如何在外键约束中组合字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14387994/

10-10 14:29