Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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 在MySQL中处理一对多引用_Php_Mysql_Sql_Database_Database Normalization - Fatal编程技术网

Php 在MySQL中处理一对多引用

Php 在MySQL中处理一对多引用,php,mysql,sql,database,database-normalization,Php,Mysql,Sql,Database,Database Normalization,我不知道如何命名,但我有以下数据库: accidentDetain(id, location, weather_conditions desc (and few more columns)); weatherConditions(id, title) acc_weat_cond(id, wc_id, ad_id) wc_id = weatherConditions ID, ad_id = accidentDetain ID 现在的情况是,用户可以存储多种天气条件,例如(雨、湿、雪、冰、雾等)

我不知道如何命名,但我有以下数据库:

accidentDetain(id, location, weather_conditions desc (and few more columns));
weatherConditions(id, title)
acc_weat_cond(id, wc_id, ad_id)
wc_id = weatherConditions ID, ad_id = accidentDetain ID
现在的情况是,用户可以存储多种天气条件,例如(雨、湿、雪、冰、雾等)

假设用户从这6个选项中选择3个,这些选项将存储在
acc\u weat\u cond
表中,带有事故详细信息id和天气条件id

保存后,用户决定更改并取消选中其中一个选项,然后按下保存按钮。问题是,有3条记录已经存储到
acc\u weat\u cond
表中,我将如何更改它们并将它们变成两条记录

我是否必须从数据库中删除第一条记录,然后再次存储新选中的选项?或者有没有更简单的方法来处理上述情况

最后一个选项是,我违反了数据库规范化的角色,直接存储在accidentDetails表中,并用逗号分隔这些值


请随时询问是否需要更多信息…

我会有一个
-字段,其中包含用户更新前检查的值。回发后,您可以将新列表与此进行比较,很容易看到他添加了哪些内容,删除了哪些元素……

我将调用所有选项,并与选中的内容进行比较,然后删除您需要的内容。如果您将其存储在表单上,则可能会出现过期数据。

这为不良数据的进入留下了机会。是的,对不起,我被宠坏了(我在intranet应用程序中只有“严重”的非黑客用户)。但是
调用所有选项是什么意思?再次查询数据库?这可能会对性能产生影响。将该信息存储在$\u会话中如何?请注意:用户可以在将来的任何时候来更改这些值并再次保存。不一定要马上更新,好像他犯了一个错误。谢谢@Chris Mantle。。。