我有 User
、Company
和 Product
,并且想要定义这三者之间的关系。
公司
- A公司
- B公司
用户
- 用户 A 为 A 公司工作
- 用户 B 为 A 公司工作
- 用户 C 为 B 公司工作
(许多用户可以为一家公司工作。)
产品
- A 公司拥有产品 A
- B 公司拥有产品 B
- B 公司拥有产品 C
(一家公司可以拥有 1 种或多种产品)
如何定义用户
和产品
之间的关系,使得用户A
和用户B
仅具有可以访问产品 A
,而用户 C
只能访问产品 B
和产品 C
?
许多用户可以处理多种产品 - 但所有用户的同一种产品上只能有一家公司
最佳答案
使用company_id (这是公司表的主键) 作为用户表和产品表中的外键。然后使用 join 基于此键关联两个表。
select user.usernamer, product.productname from user as u join product as p on u.company_id = p.company_id
关于MySQL - 限制用户只能使用分配给公司的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42756617/