创建任意sql表是不好的做法吗?

时间:2017-09-05 23:01:50

标签: sql

我所要求的是说我要存储用户数据,每个用户都有一个与之关联的项目列表。

我的第一个想法是为每个用户制作另一个表格,例如$userid$_list,列表中包含列表。这似乎是不好的做法所以我的另一个想法是将json格式的列表存储在users表的另一列中。是第一个不好的做法

我认为这是不必要的,但这是我正在尝试做的事情,我正在制作一个不和谐的机器人(discord.gg)而我现在正在做的是为每个制作一个新的数据库文件带有一堆表的服务器。

除了在数据损坏的情况下造成更多损害之外,我想知道我是否可以接受warnsbanskicks,{等表格。 {1}}等,我会有一个包含custom_commandsserverid_warnsserverid_bansserverid_kicks的数据库。

1 个答案:

答案 0 :(得分:2)

这听起来像是您尝试将用户项目相关联。

为此,您要查找的内容称为ES6 Arrow Function(或关联实体),其具有 bridging table 关系。为 users 设置一个表格,为 items 设置一个表格。然后构建第三个表作为桥接表,通过在其他两个表中的每个表中使用many-to-many ID字段将每个表中的ID相互关联。

例如,这是表格users

 ID  |  User
==== | ======
  1  |   Bob
  2  |   Jim

这是items表:

 ID  |   Item
==== | ========
  1  |   Sword
  2  |  Shield

出于我的例子的目的,Bob拥有一把剑,Jim拥有剑和盾。

因此,桥接表将如下所示:

 ID  |  UserID  | ItemID
==== | ======== | ======
  1  |    1     |   1
  2  |    2     |   1
  2  |    2     |   2

希望这有帮助! :)