深入探索 Django:数据库、管理界面与视图开发
1. 数据库外键关系与数据完整性
在数据库设计中,外键关系是确保数据一致性和完整性的重要手段。以书籍和作者的关系为例,每本添加到数据库的书籍都必须关联到一个已存在的作者,这是由外键约束来实现的。外键约束不仅是一种内置的数据验证方式,还能通过强制执行规则来维护数据库的数据完整性。
1.1 外键约束与级联删除
当我们定义书籍模型中的作者字段时,可以使用外键约束,并设置级联删除规则。例如:
# 假设在模型定义中
from django.db import models
class Book(models.Model):
author = models.ForeignKey('Author', on_delete=models.CASCADE)
pub_date = models.DateTimeField('date published')
def was_published_recently(self):
now = timezone.now()
return now - datetime.timedelta(days=1) <= self.pub_date <= now
这里的 on_delete=models.CASCADE 表示当删除一个作者时,该作者所写的所有书籍记录也会被自动删除,避免出现孤儿记录。孤儿记录会占用数据库空间,并且破坏作者和书籍之间的关系完整性。
超级会员免费看
订阅专栏 解锁全文
1764

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



