引用数据被禁用时的解决办法

在应用的开发中,经常存在类似这样的问题:仓库表引用地点表的数据,而地点表的数据有一个启用/禁用状态,当某个地点被引用时,引用了它的仓库的地点信息如何显示,编辑时如何编辑?

一般情况下,我们会在仓库表中设计地点的ID字段作为外键来引用地点,在仓库编辑页中会用下拉列表来显示地点列表,当某个地点被禁用时,列表中就不显示它。但当仓库之前已经引用了被禁用的地点时,由于它所引用的地点在列表中不存在,地点下拉列表显示就会有问题,只会出现地点的ID。

有一个解决办法是在仓库的添加页中不显示禁用的地点,而在仓库的编辑页中显示所有禁用的地点,这样显示不会有问题,但是由于把其他禁用的地点也显示出来了,就可以更换为别的已禁用地点,这在功能设计上是说不过去的。

我发现一个有效的解决办法是:仓库表同时包含地点的ID或名称,当它引用的地点被禁用时,往下拉列表中追加一项以包含该地点的ID和名称。这样地点的显示不会有问题,也可以修改为别的有效的地点。(当然如果仓库表只包含地点的ID,也可以通过查询的方式查询该地点的名称,也是可以的。)

posted on 2015-11-11 21:28  liuhua4451  阅读(235)  评论(0编辑  收藏  举报