三个表之间的一对一关系

时间:2016-10-21 10:45:09

标签: mysql sql database

enter image description here

您好 我想在三个表之间实现一个或一个关系,这样rtTicketId(1)只能用于vmID(1)并且不能被dbId(1)使用。

<img class="images" src="slideshow/slide0.png">
<img class="images" src="slideshow/slide1.png">
<img class="images" src="slideshow/slide2.png">
<img class="images" src="slideshow/slide3.png">
<img class="images" src="slideshow/slide4.png">
<img class="images" src="slideshow/slide5.png">
<img class="images" src="slideshow/slide6.png">

<script language='javascript'>
    //script voor de slideshow
    var myIndex = 0;
    carousel();
    function carousel() {
        var i;
        var x = document.getElementsByClassName("images");
        for (i = 0; i < x.length; i++) {
           x[i].style.display = "none";
        }
        myIndex++;
        if (myIndex > x.length) {myIndex = 1}
        x[myIndex-1].style.display = "block";
        setTimeout(carousel, 5000); // Change image every 5 seconds
    }
</script>

我已完成此操作,但这只会在两个之间创建一对一的关系。我希望rt id是唯一的。现在,vm和db表都能够使用相同的rtTicketId连接到请求表。 我不想要那个

1 个答案:

答案 0 :(得分:0)

也许多态关联会有所帮助;例如而不是VM,因为DB有一个存储rtTicketId的列,RT将有2列,例如fkId和fkType,fkId将主键存储在VM或DB中,fkType定义查询时的位置(DB或VM)。

另见:Possible to do a MySQL foreign key to one of two possible tables?

我能想到的另一个选择是以编程方式执行此操作,例如:

  

SELECT * FROM RequestTable WHERE rtTicketId NOT IN(SELECT DISTINCT   rtTicketId来自your_other_table_vm_or_db)