匹配 MySQL/SQL 中的一对外键

Matching a pair of foreign keys in MySQL/SQL

有没有办法配对外键来匹配?

例如user_idsubs_id fk 对在产品 table 中不匹配,但允许添加。

Table:用户

| user_id (PK) | first_name  | last_name  |
| -------------| ------------|------------|
| 000001       | David       | Hawk       |
| 000002       | Ali         | Abdullah   |

Table: 订阅

| user_id (FK) | subs_id (PK) | subs_status | total_cycles |
| -------------| -------------|-------------|--------------|
| 000001       | ABC_123456   | ACTIVE      | 4            |
| 000002       | CDE_654321   | CANCELLED   | 8            |  

Table:产品

| user_id (FK) | subs_id (FK)   |   product   |  plan  | product-key (PK) |
| -------------| ---------------|-------------|--------|------------------|
| **000001**   | **CDE_654321** | Product-A   | Pro    | A5CD-8Z62-X2D4   |
| **000002**   | **ABC_123456** | Product-B   | Plus   | WFE7-71W4-Z64D   |           

如果我没理解错的话,你有两个外键,一个在 user_id 上,一个在 subs_id 上。相反,您需要在两者的组合上有一个外键:

ALTER TABLE product
ADD CONSTRAINT prodcut_subscription_fk
FOREIGN KEY (user_id, subs_id)
REFERENCES subscription(user_id, subs_id)