MySQL:是否可以为两个不同的表列创建外键?

时间:2016-08-18 15:26:08

标签: mysql sql database

我有一个表(a),它应该有一个列“user_id”,它是某个其他表(b)OR(c)的外键。 所以它指向表b或c(只有一个,而不是两个)。

这在MySQL中是否可行?我能想出的最好的事情就是跟随(但正如你所看到的,我在“a”-table中有两次“user_id”,这不是很好,因为这两个值中的一个总是空的。

enter image description here

非常感谢!

1 个答案:

答案 0 :(得分:0)

嗨,这称为多态关联,您不能使用MySql外键约束来强制执行它。

要使userId_a为null或user_id_b为null,您可以创建检查约束

from itertools import product

def find_shortest(doc, terms):
    doc = document.split()
    substrings = (
        doc[i:j]
        for i, j in product(range(0, len(doc)), range(0, len(doc)))
        if all(search_term in doc[i:j] for search_term in search_terms)
    )
    shortest = doc
    for candidate in substrings:
        if len(candidate) < len(shortest):
            shortest = candidate
    return shortest.
document = 'many google employees can program can google employees because google is a technology company that writes program'
search_terms = ['google', 'program', 'can']

print find_shortest(document, search_terms)
>>>> ['program', 'can', 'google']