我有一个带有复选框的表单,我需要知道将它们提交到数据库的最佳方式是什么。我有以下表格设置:
roles users user_roles
----- ----- ----------
id id user_id
role_id
我有一个页面,您可以在其中编辑用户并通过复选框为他们分配不同的角色,然后将这些复选框保存在 user_roles 表中。由于编辑用户的角色可能涉及删除行或添加行,这就是我目前的处理方式:
my $form_vals = (1=>1,2=>2); #submitted by user
my $db_vals = (3=>3); #gotten out of db
所以我有这两个哈希值,我会将 in 中的键与 in 中$form_vals
的键进行比较$db_vals
,然后我看到我有两个额外的值在数据库中不存在,所以我添加了它们。反之亦然,我通过比较键$db_vals
和键来发现表单上不再选择哪些值$form_vals
,然后从数据库中删除这些行。我的问题是,有人知道更好/更简单的方法吗?对我来说,如何处理复选框从来都不是很明显,我想知道最佳实践是什么。谢谢!