这是描述Maria DB中城市选择的更好方式


Which is the better way of describing city selections in Maria DB

我的数据库中有一个城市表。每个城市都有一个客户表和一个预测表。每个客户都有一份他们需要预测的城市列表。我需要把这些列表放在数据库中,因为它们现在在文本文件中。

我可以想出两种方法来实现这一点:

  1. 为城市表中的每个客户端添加一个具有布尔值的列
  2. 在客户表中添加一列字符类型的列,并将所有城市ID放在那里,用","或"_"分隔

数据将使用PHP进行处理。DB规模较小:共有50个客户和200个城市。

我不喜欢第一种方法的地方是,每当我有一个新客户时,我都需要更改表结构。

我更喜欢第二种方法,但不知何故,它不适合结构化数据的"DB方式"。

你觉得怎么样?

我不知道mariadb,但你正在尝试对多对多关系进行建模。在SQL数据库中,你会创建一个新的表"subscriptions"(或你称之为w/e),如下所示:

user_id  |  city_id  | (additional options if needed)

然而,在mongodb中,您(通常)会有一个引用(id)列表:

collection users:
{
   "name": "blabal",
   "cities": [ 1, 2, 7 ]
}

永远不要做那个字符串变体,它浪费了很多空间,搜索效率也很低。