18、单表继承与数据验证:原理、应用与技巧

单表继承与数据验证:原理、应用与技巧

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值