繁体   English   中英

如何设置MySQL表,该表包含引用其他表的行

[英]How to setup MySQL tables that contain rows that are references to other tables

我正在开发一个游戏,用户可以在该游戏上注册,拥有库存并拥有该库存中的武器。 我想将此信息存储在数据库中。

到目前为止,这是我的设置方法:

  • 我的用户表包含一个UserID列(以及其他信息)。

  • 我的清单表包含一个InventoryID列和一个UserID列(该UserID对应于清单的所有者)

  • 我的武器表包含一个InventoryID列,该列引用了它所属的库存。

这是标准的做事方式吗? 我可以更改布局并使它更简单吗? 使用这样的数据库似乎有点乏味。

如果我的用户表中有一个清单条目的引用,而该条目中有一系列武器,那就容易得多。 我通过存储对每个条目ID的引用来实现这一点,但是我不能通过运行一个查询来创建一个“ User” php类(它具有对Inventory对象的引用,该对象具有一个Weapon对象数组)。数据库。

也许有一个框架可以实现这一目标?

您所描述的是简单的一对多关系。

您不需要库存表。

您需要一个具有userID作为主键的用户表,并将其用作武器表中的外键。

在联接的帮助下,您可以使用一个查询来获取所有记录。

您是否考虑过NoSQL数据库? :)

关系数据库通常需要您所描述的“联接”表。 如果库存用户为1:1,并且没有1个武器只能属于1个库存/用户,则无需连接表即可完成此操作,只需让武器存储一个用户ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM