在一个由 SQL 数据库支持的应用程序中,有一个地址表、一个“表单”表和一个表单数据表(字段名称 -> 值对)。地址首先由用户手动添加,然后可以在填写表格时从下拉列表中选择。
应用程序可以显示已填写表格的表格视图,显示的其中一列是地址(地址的第一行)。这是通过引用所选地址的 id 的表单表有效地完成的。
然而,系统随后被修改为允许用户选择以前输入的地址(和以前一样)或在填写表格时手动输入新地址。如果用户单击“保存地址”按钮,新地址只会添加到地址表中。否则只记录表单数据表中的数据
如果地址是手动输入的并且用户没有点击“保存地址”按钮,则该地址无法显示在已填写表格的表格视图中。解决这个问题的一种天真的方法是迭代每个表单并检索表单数据表中相应的“地址行 1”行并将其添加到返回的行中,但是由于字段名称列未被索引,因此效率不高。
解决这个问题的最佳方法是什么?
有没有比简单地向表单表添加一列更好的选择,只要在表单上填写地址行 1(以及用于填充现有表单的数据库更新脚本),表单表就会更新?