Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Maria DB中描述城市选择的更好方法是什么_Php_Mariadb - Fatal编程技术网

Php 在Maria DB中描述城市选择的更好方法是什么

Php 在Maria DB中描述城市选择的更好方法是什么,php,mariadb,Php,Mariadb,我的数据库中有一个城市表。每个城市都有一个客户表和一个预测表。每个客户都有一份需要预测的城市列表。我需要将这些列表放入数据库,因为它们现在是文本文件 我可以想出两种方法来实现这一点: 使用布尔值为city表中的每个客户端添加列 在clients表中添加一列字符类型,并将所有城市ID用“,”或“\”分隔 数据将用PHP处理。DB很小:总共有50个客户和200个城市 对于第一种方法,我不喜欢的是,每当我有一个新客户机时,我都需要更改表结构 我倾向于更喜欢第二种方法,但不知何故,它不适合结构化数据的“

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

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

  • 使用布尔值为city表中的每个客户端添加列
  • 在clients表中添加一列字符类型,并将所有城市ID用“,”或“\”分隔
  • 数据将用PHP处理。DB很小:总共有50个客户和200个城市

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

    我倾向于更喜欢第二种方法,但不知何故,它不适合结构化数据的“DB方式”


    你觉得怎么样

    我不知道,但您正在尝试对多对多关系建模。在SQL数据库中,您将创建一个新表“subscriptions”(或您称之为w/e),如下所示:

    user_id  |  city_id  | (additional options if needed)
    
    但是,在mongodb中,您(通常)会有一个引用列表(ID):


    永远不要使用字符串变量,它会浪费大量空间,搜索等效率低下。

    在客户端表中,添加一列链接城市(在关于客户端的200个城市中,您选择1、2、3或10,但不是全部200个),您所说的“链接”是什么意思,Maria DB链接了Field为什么用MySql标签标记问题?我没有看到有MariaDB标签。现在变了。感谢您对链接字段的建议。我会读的,听起来很合理。谢谢
    collection users:
    {
       "name": "blabal",
       "cities": [ 1, 2, 7 ]
    }