Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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
Mysql 插入到另一个表时更改一个表_Mysql_Sql_Database_Database Design_Triggers - Fatal编程技术网

Mysql 插入到另一个表时更改一个表

Mysql 插入到另一个表时更改一个表,mysql,sql,database,database-design,triggers,Mysql,Sql,Database,Database Design,Triggers,首先让我在这里解释一下我的情况,我有一个名为users的表格,它存储用户信息 +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | user_id | varchar(10) | NO | PRI

首先让我在这里解释一下我的情况,我有一个名为users的表格,它存储用户信息

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| user_id  | varchar(10) | NO   | PRI | NULL    |       |
| username | text        | NO   |     | NULL    |       |
| password | text        | NO   |     | NULL    |       |
| name     | text        | NO   |     | NULL    |       |
| email    | text        | NO   |     | NULL    |       |
| status   | varchar(15) | NO   |     | active  |       |
+----------+-------------+------+-----+---------+-------+
还有一张名为“国家”的表格

+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| country_id   | varchar(10) | NO   | PRI | NULL    |       |
| country_name | text        | NO   |     | NULL    |       |
| country_rate | double      | NO   |     | 0.2     |       |
+--------------+-------------+------+-----+---------+-------+
现在,我需要一个过程来映射分配给特定用户的国家数量。 例如:

允许用户使用国家/地区、国家/地区、国家/地区

允许用户_002使用国家(地区)_003、国家(地区)_008

等等

实现上述目标的最佳方法是什么

我的想法是有一个名为say assignment的表,它将包含以下字段:

assignment_id (primary key)

user_id (foreign Key)

country_001 (bool)

country_002 (bool)

...
...

country_010 (bool)
我不确定这是否是最好的方法,但即使我这样做了,我还是会在每次插入country表时(在assignment中添加一个BOOL字段,以新创建的country_id作为列名)如何更改赋值结构

我希望我能解释我的情况。我知道我可以通过语言支持代码(PHP,C++等)来实现,但是我在想,如果可以用某种触发器来完成,这样我就不用在代码部分去关心它了。
非常感谢。

这样定义
user\u countries
表会更好:

user_id fk on users(user_id)
country_id fk on countries(country_id)
unique key on ( user_id, country_id ) -- composite unique key
我不确定您为什么要在用户国家/地区关系表中定义10列。
但是,您只需使用外键和
用户id
国家id
之间具有一对多关系。有了它,您可以轻松处理用户和国家/地区的关系。它们组合上的唯一键可以加快数据访问速度并避免重复。

那么,您建议的是为每个任务设置一个条目?如分配_001、用户_001、con_002;然后分配_002、用户_001、con_004Yes。而且,
作业id
,我觉得这不是必需的。但我不知道你想如何使用它。我想是的,最好有另一个表来处理这个国家的用户