【问题标题】:To join or not to join, database structuring加入或不加入,数据库结构
【发布时间】:2015-01-11 03:47:09
【问题描述】:

我正在尝试构建一个可以执行以下操作的数据库:

“允许一个用户给予或接受另一个用户的一些项目,并留下关于它的可选评论。”

我认为这只需要两个表:

用户表:

用户 ID (PK)
名字

电子邮件
密码
物品余额
创建日期
修改日期

交易表:

TxnID (PK)
项目数
送礼
ToUser (FK)
来自用户 (FK)
评论
创建日期
修改日期

这能解决问题还是我应该有一个连接表?我可以看到 Transactions 在哪里可以有很多用户,所以看起来它可能是多对多的关系。任何帮助,将不胜感激。谢谢!

【问题讨论】:

  • 如果你真的有一个多对多,那么你确实需要一个中间表。
  • 所以用户拥有无限数量的物品?

标签: mysql join database-design


【解决方案1】:

您列出的当前要求仅允许两个用户之间的事务 - 您当前表中的 ToUserFromUser。所以对于这个用例,你的设计很好。

【讨论】:

  • 一个用户可以从多个用户那里给予或接受一个项目,但它始终是两个用户之间的单独交易,所以我相信这仍然存在。感谢您的确认。
【解决方案2】:

我会单独保留用户表,并按照您在问题中的建议单独创建事务表。 这将帮助您跟踪所有交易。

如果您加入表,您将拥有太多相同的数据,或者您将只有最后一个事务。

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多