MySQL - 限制用户只能使用分配给公司的产品

标签 mysql database database-schema

我有 UserCompanyProduct,并且想要定义这三者之间的关系。

公司

  • 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/

相关文章:

mysql - 如何存储在数据库中有用的多项选择?

php - 将 404 重定向到类似的 url

c# - 有没有办法在 C# 中为 sql 数据库生成 getter 和 setter?

MySQL:如何使用多个连接?

xml - 使用基于 XML 的数据库有哪些优点和缺点?

ruby-on-rails - Rails 中的关系数据库 : how many references do I need?

database - Oracle自动授予权限

php - 简单的 PHP 表单不提交

mysql - WCF:从 Oracle 10g、MySQL 和 SQL Server 2008 数据库获取数据的最佳方式?

php - 合并 MySQL 中创建的列