在实际的程序开发中,我们通常在后台程序设计的时候,用了大量抽象的东西,接口,抽象类等等,也用了继承和实现来快速扩展子类,这些都是为了让程序开发更加高效,模块化,易于分工协作等等;但是在数据库端如何实现这种继承关系呢?特别是针对于业务特别复杂的模型的时候,数据库的设计更加重要;
通常有三种方法来实现:
1 建立外键表,将所有子表共有的用于实现某一种功能的字段封装起来,比如将描述数据权限的字段封装起来;这种做法虽然简化了子表的数据列,但是却增加了后期使用过程中的查询消耗;
2 子表各自拥有记录描述自己的公共字段:比如每个子表都有结构相同的描述数据权限的字段;这种做法是最基本的,因为是最耗时的,特别是当父类业务进行变化的时候,子表需要或者修改添加相同的字段;
3 将所有的子表记录在一张表结构中,这样虽然,降低了查询消耗,但是也浪费了子类对象的大量字段,因为并不是每一个子类都会用到所有字段;
具体选择那种方法,是根据实际业务进行选择和调整。