我的数据库中有一个城市表。每个城市都有一个客户表和一个预测表。每个客户都有一份他们需要预测的城市列表。我需要把这些列表放在数据库中,因为它们现在在文本文件中。
我可以想出两种方法来实现这一点:
- 为城市表中的每个客户端添加一个具有布尔值的列
- 在客户表中添加一列字符类型的列,并将所有城市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 ]
}
永远不要做那个字符串变体,它浪费了很多空间,搜索效率也很低。