请资深专家一起探讨探讨: 1、在数据应用设计方面,如何考虑历史记录的查询?  如:有三个表,分别是单位表,部门表,人员表。
     单位表,含单位编码,单位名称 字段
     部门表,含单位编码,部门编码,部门名称 字段
     人员表,含单位编码,部门编码,人员编码,人员名称 字段     一旦单位表,部门表 中 单位编码,部门编码,发生改变,即在单位、部门发生关停并转后,如何处理人员表中的人员记录,查询历史人员记录,如何处理单位、部门表中单位部门的历史记录查询问题。   2、表的ER关系和约束问题如何考虑?   在数据库教程中,表之间的ER关系,设计时都用主外键来实现。    可是,在实际应用中,外键之类的确实不敢创建! 由于用户的水平基本偏低,万一把哪个单位给删了,建了外键的话,部门、人员的表岂不出问题了,有些数据库系统,会把部门、人员的表相关的数据全删了,有些数据库,则删不掉,提示一大堆错误!   主外键的是否创建如何权衡比较妥当?
 3、如何做到应用和数据库平台的无关性?   许多应用软件,在不同的省份实施,不同的省份有自己的数据库选择规定。比如在新疆,该应用的数据库系统全省用SYBASE系统,在内蒙,用ORACLE系统,在山东用DB2系统...  我们在开发数据库应用时,如何实现这样的应用系统的数据库部分设计,有什么办法实现应用系统的数据库无关性?   请资深专家一起探讨探讨