希望有人可以给我一个正确的方向。
所以我有一份工作“产品”表格,员工填写表格,结果显示在桌子上。我在此表单中添加了一个“已批准”复选框,表中还会显示是否选中此结果。
但是,由于任何员工都可以编辑这个,我想要一个关于谁检查和取消选中我的数据库中的框的记录。所以我在“产品”数据库表和模型中添加了checkedBy和checkboxDate。
我只是想知道这是正确的方法,或者我应该拥有自己的桌子,模型,属性等复选框?
答案 0 :(得分:1)
我的建议是拥有一个包含4列的单独表格 - UpdatedBy(保存更新者),UpdateDate(即更新时可能是系统日期),组件(部件或页面名称已更新)和部分(哪个值或控件已更新)。这将有助于您将此表用于整个产品的任何此类更改。
答案 1 :(得分:0)
这是完全正常的解决方案。如果复选框与"产品"有关系向该表添加一些与该复选框对应的属性是正常的。
答案 2 :(得分:0)
我认为这不是一个好的解决方案。因此,如果UserA取消选中该框,则会在ProductId1的产品表中记录UserA和Uncheck(例如)。然后,当UserB检查此项时,您将覆盖ProductId1中的这些值。因此,您只保留最后一个选中/取消选中它的人。
以下是我过去做过这样的事情。在db中,对于任何需要历史记录的表,我添加以下内容:
每当有人对记录进行更改时,我都会设置当前记录的UpdateByUser和EffectiveTo(至Now)。然后我插入一个包含现有值和更改值的新记录。此记录将使EffectiveTo为null(表示这是当前活动记录)。这样你就会知道改变了什么,你也有历史。在给定产品的任何实例中,只有1条记录应将EffectiveTo设置为null。其余的应该有一个值。
哦,我不会把列调成checkBy,uncheckedBy因为这是非常具体的。我会称它们为ApprovedBy,RejectedBy或者对应用程序所针对的域有意义的东西。