处理MySQL中的一对多引用


Handling one-to-many references in MySQL

我不知道如何给这个标题,但我有以下数据库:

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_weat_cond表中,并具有事故详细信息id和天气条件id。

保存后,用户决定更改并选中其中一个选项,然后按保存按钮。问题是,有3条记录已经存储在 acc_weat_cond 表中,我将如何更改并使它们成为两条记录。

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

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

我将有一个<input type='hidden'name='checkedflds' value='1,2,3' />字段,其中包含在用户更新之前检查的值。然后,在回发之后,您可以将新列表与旧列表进行比较,并很容易地看到他添加了哪些元素,删除了哪些元素…

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