单表继承与数据验证:原理、应用与技巧
1. 复合属性列值的修改
在处理复合属性时,若要更改与之关联的列的值,正确的做法是为该属性分配一个新的复合对象。以下是示例代码:
customer = Customer.find(123)
old_name = customer.name
customer.name = Name.new(old_name.first, old_name.initials, "Smith")
customer.save
2. 单表继承
2.1 概念
在面向对象编程中,我们常使用继承来表达抽象之间的关系。例如,在一个应用中可能会处理不同角色的人员,如客户、员工、经理等。这些角色有一些共同属性,也有各自特定的属性。我们可以通过类的继承来建模,如 Employee 类和 Customer 类都是 Person 类的子类,而 Manager 类又是 Employee 类的子类,子类继承父类的属性和职责。
但在关系型数据库中,并没有继承的概念,关系主要通过关联来表达。为了将面向对象的对象模型存储在关系型数据库中,有多种映射方式,其中最简单的一种就是单表继承。
2.2 单表继承的实现
在单表继承中,我们将继承层次结构中的所有类映射到一个数据库表中。这个表包含层次结构中所有类的每个属性的列,此外,还会有一个按惯例称为 type
超级会员免费看
订阅专栏 解锁全文
1401

被折叠的 条评论
为什么被折叠?



