django数据库表结构设计
时间: 2023-10-17 07:06:23 浏览: 181
在jango中,数据库表结构的设计是通过定义模型(Models)来实现的。模型是一个Python类,它继承自django.db.models.Model,并且通过定义类的属性来描述表的字段。下面是一个例子:
```python
from django.db import models
class Publisher(models.Model):
pid = models.AutoField(primary_key=True)
name = models.CharField(max_length=32, unique=True)
# 其他字段...
class Book(models.Model):
title = models.CharField(max_length=32)
pub = models.ForeignKey("Publisher", on_delete=models.CASCADE)
# 其他字段...
```
这个例子中,我们定义了两个模型,一个是Publisher(出版社)模型,一个是Book(图书)模型。Publisher模型包含了一个pid字段作为出版社的id,设置为主键,类型为自增的整数,以及一个name字段作为出版社的名称,限制字符长度为32,并设置唯一属性。Book模型包含了一个title字段作为书名,限制字符长度为32,并且还有一个外键字段pub,关联到Publisher模型的id字段,级联设置为级联删除。你可以根据需要添加其他的字段。
另外,还有一个例子是关于学生和班级的表结构设计:
```python
class Class(models.Model):
cid = models.AutoField(primary_key=True)
cname = models.CharField(max_length=32, unique=True)
# 其他字段...
class Student(models.Model):
sid = models.AutoField(primary_key=True)
s_name = models.CharField(max_length=32, null=False)
gender = models.CharField(max_length=2, default='男')
class_id = models.ForeignKey("Class", on_delete=models.CASCADE)
# 其他字段...
```
这个例子中,我们定义了一个Class(班级)模型和一个Student(学生)模型。Class模型包含一个cid字段作为班级的id,设置为主键,类型为自增的整数,以及一个cname字段作为班级的名称,限制字符长度为32,并设置唯一属性。Student模型包含一个sid字段作为学生的id,设置为主键,类型为自增的整数,一个s_name字段作为学生的名称,限制字符长度为32,非空约束,一个gender字段作为学生的性别,限制字符长度为2,默认设置为男,还有一个外键字段class_id,关联到Class模型的id字段,级联设置为级联删除。
通过以上的例子,你可以参考Django的模型定义来设计数据库表结构。
阅读全文