【问题标题】:mysql table relationship with primary and foreign keysmysql表与主键和外键的关系
【发布时间】:2021-08-07 04:16:55
【问题描述】:

我创建了 3 个表:帐户、产品、索赔。这些是关系:

  • 帐户:PK - 用户名
  • 产品:PK - 序列号,FK - 用户名
  • 声明:FK - 用户名,FK - 序列号

我的问题是,只要用户知道序列号,即使用户没有购买的产品也可以添加声明,而我应该只允许用户为用户购买的产品添加声明。为了插入声明,我正在使用此查询:

INSERT INTO 声明(用户名、序列号、日期、问题)值(%s、%s、%s、%s)

我是否需要使用键更改表关系来修复上述问题,或者使用更具体的查询?更好的是,这应该如何工作的逻辑是什么?

【问题讨论】:

    标签: mysql insert key relationship


    【解决方案1】:

    您应该按username 过滤当前用户的products,以避免声明与该用户无关的产品。如果您过滤要声明的产品,则无需更改表结构,这取决于您将如何在您使用的编程语言中实现过滤器。

    首先选择与用户相关的所有产品。

    SELECT * FROM products WHERE username=@currentusername;

    然后在您的程序中,只允许用户从获取的产品中声明。

    【讨论】:

    • 以上可以在单个INSERT多表查询中完成吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    相关资源
    最近更新 更多