【问题标题】:What will be my Primary and Foreign Keys?我的主键和外键是什么?
【发布时间】:2018-08-20 06:35:19
【问题描述】:

我是数据库的新手:以下数据库的主键和外键是什么: 用户购买物品并通过评分(1,2,3,4,5)对它们进行评分
用户(ID,姓名)
项目(ID、描述、类别、价格) 购买(用户、商品、价格) 费率(用户、项目、评分)

【问题讨论】:

  • 你的方法是什么?你能补充一下你的最佳猜测吗?
  • 主键通常是id,因为它是唯一标识符,外键取决于你现在拥有什么。就像,如果您将名称设置为 varchar(255) 并且 buys(user) 也是 varchar(255) 那么您可以将它们与 FK 约束链接在一起以使用户与产品相关联(只是猜测不要引用我)
  • 也许可以尝试自己研究一下 PK 和 FK 是什么...了解它们是什么而不是随便听别人的话很有用
  • @L_Church "user" in "buys" 应该引用 "user" 表中的 ID,因为 "name" 可能会改变。除非您想在购买时明确保存用户的名称值。但即便如此,我也会同时拥有这两个字段,因为“名称”可能不是唯一的。星期日:在 "buys" 和 "rates" 中,我会添加输入的日期(甚至日期时间)。
  • 这就是为什么我从不希望人们引用我的话,如果我不纠正,他们会搞砸的,哈哈

标签: mysql mysql-workbench


【解决方案1】:

主键

  • 用户表中的id
  • 项目表中的id

外键

  • buys表中的user_id(引用User表PK)和item_id(引用item表PK)

  • user_id(参考用户表PK)和item_id(参考项目表PK)费率表

【讨论】:

    【解决方案2】:

    在给定的情况下。对我来说,这就是您必须以下列方式看待的内容:

    主键:

    Id in User table
    Id in Item Table
    

    外键:

    User in Buys Table Of ID in User Table
    Item in Buys Table Of ID in Item Table
    User in Rates Table Of ID in User Table
    Item in Rates Table Of ID in Item Table
    

    【讨论】:

    • 现在你给了一个饥饿的人一条鱼……(最好告诉他们怎么钓)
    • 大佬们,大同小异,在工作台上,没有PK的表,无法编辑!!!!!!是只读的
    【解决方案3】:

    PK = 主键 FK = 外键

    user(PK userid, name)
    
    item(PK itemid, description, category, price) 
    
    buys(FK userid, FK itemid, price) 
    
    rates(FK userid, FK itemid, rating)
    

    buys 只有在价格可以改变的情况下才需要价格。

    用户和商品表需要一个主键,以便购买和费率表可以引用它们。我使用了与id 不同的名称,因此在使用连接操作进行选择时可以清楚地连接哪些列。

    【讨论】:

    • 如果您能说明您是如何得出该解决方案的,您的回答会更有帮助。
    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2017-05-07
    • 2023-01-30
    • 1970-01-01
    • 2012-11-17
    相关资源
    最近更新 更多