关于继承对象的持久化
小弟从事.net1年多了,一直有以下疑惑,请高手指点迷津。
举例:
最初设计在业务逻辑层有如下三个类Person,Student,Teacher. Person是抽象基类,Student,Teacher是继承子类,这样建立类符合oo思想,扩展性等方面有很多好处。但是DAL层如何持久化数据,小弟遇到了麻烦。
1.每个子类建立一个表(Student,Teacher2个表).(感觉有太多冗余数据,不符合数据库设计规范)。
2.子类的所有属性(剔除相同的属性)建立一个表(Person),表中加上一个标志字段标明是Student,还是Teacher.
小弟是想按第2种思路处理,但没有实际实施,遇到了很多困难(orm等方面知识很欠缺)。
无奈最后是按照PetShop3的那种模式处理的,一个业务对象对应数据库的一个表, 业务逻辑层也被修改了。只有一个Person类(去掉了Student,Teacher类,加上了标识子类的属性)。
小弟要是想按照最初的业务逻辑层三个类Person,Student,Teacher来处理,应该如何持久化数据?或者告知相关的资料。问题很简单,高手见谅。