MySQL - 将用户限制为分配给公司

时间:2017-03-13 04:26:19

标签: mysql database database-schema

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

公司

  • 公司A
  • 公司B

用户

  • 用户A适用于公司A
  • 用户B适用于公司A
  • 用户C适用于公司B

(许多用户可以为公司工作。)

产品

  • A公司拥有产品A
  • B公司拥有产品B
  • B公司拥有产品C

(公司可以拥有1个或更多产品)

如何定义UserProduct之间的关系,以便User AUser B只有Product A User C才能访问Product B只能访问Product Cpublic void p1Start(View a) { if(flag==0) { p2.setTextColor(Color.parseColor("#ffffff")); p2.setBackgroundColor(Color.parseColor("#00bcd4")); p1.setTextColor(Color.parseColor("#3f51b5")); p1.setBackgroundColor(Color.parseColor("#303F9F")); reverseTimer(300-1, p2); cd2.start(); cd1.cancel(); flag=1; } } public void p2Start(View b) { if(flag==1) { p1.setTextColor(Color.parseColor("#ffffff")); p1.setBackgroundColor(Color.parseColor("#00bcd4")); p2.setTextColor(Color.parseColor("#3f51b5")); p2.setBackgroundColor(Color.parseColor("#303F9F")); reverseTimer(300-1, p1); cd1.start(); cd2.cancel(); flag=0; } } public void reverseTimer(long Seconds, final TextView tv){ cd1 = new CountDownTimer(Seconds* 1000+1000, 1000) { public void onTick(long millisUntilFinished) { s1=millisUntilFinished/1000; int seconds = (int) (millisUntilFinished / 1000); int minutes = seconds / 60; seconds = seconds % 60; tv.setText("" + String.format("%02d", minutes) + ":" + String.format("%02d", seconds)); } public void onFinish() { tv.setText("Completed"); } }; cd2 = new CountDownTimer(Seconds* 1000+1000, 1000) { public void onTick(long millisUntilFinished) { s2=millisUntilFinished/1000; int seconds = (int) (millisUntilFinished / 1000); int minutes = seconds / 60; seconds = seconds % 60; tv.setText("" + String.format("%02d", minutes) + ":" + String.format("%02d", seconds)); } public void onFinish() { tv.setText("Completed"); } }; }

许多用户可以处理许多产品 - 但所有用户只能将一个公司附加到产品上

1 个答案:

答案 0 :(得分:0)

使用company_id (这是公司表的主键) 作为用户和产品表中的外键。然后使用join来关联此键的基础上的两个表。



   select user.usernamer, product.productname from user as u join product as p on u.company_id = p.company_id