设计django+mysql图书借阅系统数据库代码
时间: 2023-12-25 19:03:19 浏览: 27
下面是一个简单的 Django + MySQL 图书借阅系统的数据库代码:
``` python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
# 读者表
class Reader(models.Model):
name = models.CharField(max_length=50, verbose_name='姓名')
gender = models.CharField(max_length=1, choices=(('M', '男'), ('F', '女')), verbose_name='性别')
phone = models.CharField(max_length=20, verbose_name='电话')
email = models.EmailField(max_length=50, verbose_name='邮箱')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta:
verbose_name = '读者'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
# 图书分类表
class BookCategory(models.Model):
name = models.CharField(max_length=50, verbose_name='分类名称')
class Meta:
verbose_name = '图书分类'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
# 图书表
class Book(models.Model):
name = models.CharField(max_length=50, verbose_name='书名')
author = models.CharField(max_length=50, verbose_name='作者')
category = models.ForeignKey(BookCategory, on_delete=models.CASCADE, verbose_name='分类')
publish_time = models.DateField(verbose_name='出版日期')
publish_house = models.CharField(max_length=50, verbose_name='出版社')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta:
verbose_name = '图书'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
# 借阅记录表
class BorrowRecord(models.Model):
reader = models.ForeignKey(Reader, on_delete=models.CASCADE, verbose_name='读者')
book = models.ForeignKey(Book, on_delete=models.CASCADE, verbose_name='图书')
borrow_time = models.DateTimeField(auto_now_add=True, verbose_name='借阅时间')
return_time = models.DateTimeField(verbose_name='归还时间', null=True, blank=True)
class Meta:
verbose_name = '借阅记录'
verbose_name_plural = verbose_name
def __str__(self):
return '{0} {1}'.format(self.reader.name, self.book.name)
```
以上代码定义了四个表:Reader(读者表)、BookCategory(图书分类表)、Book(图书表)、BorrowRecord(借阅记录表),并且定义了它们之间的关系。其中,Reader、BookCategory、Book分别表示读者、图书分类和图书,而BorrowRecord则表示借阅记录。每个表都有一些字段,用于存储相关信息。例如,Reader表包含姓名、性别、电话、邮箱等字段,而Book表包含书名、作者、分类、出版日期、出版社等字段。ForeignKey字段用于表示表之间的关系,例如Book表中的category字段就表示这本书所属的分类。在BorrowRecord表中,reader和book字段分别表示借阅的读者和图书。borrow_time字段表示借阅时间,return_time字段表示归还时间。在return_time字段中,设置了null=True和blank=True,表示归还时间可以为空,即借阅的图书还未归还。