Django day03之表设计分析


models.py文件中创建表字段分析实例:
图书管理系统--->
书、作者、出版社作为基表

from django.db import models

# Create your models here.
#先不要考虑外键关系,先创基表
class Book(models.Model):
    '''
    书名、价格、出版社、作者
    '''
    title=models.CharField(max_length=32)
    #小数长度总共8位,小数占两位
    price=models.DecimalField(max_digits=8,decimal_places=2)
    #出版社和书是一对多关系,并且书是多的一方,所以外键字段建在书表中,
    publish=models.ForeignKey(to='Publish')
    #to用来指代和哪张表有关系,默认关联的就是表的主键字段
    '''
    一对多外键字段在创建的时候,同步到数据中,表字段会自动加_id后缀
    如果你自己加了_id,我ORM头铁,会在后面再加一个_id,
    所以你在写一对多外键字段的时候,不要自作聪明的加_id。
    
    '''
    #一本书可以有多个作者,一个作者可以有多本书,所以书和作者是多对多的关系,
    # 外间字段建在任意一方都可以,但是建议你建立在查询频率较高的一方。
    author=models.ManyToManyField(to='Author')
    #django  orm 会自动帮你创建书籍和作者的第三张关系表,
    #author这个字段是一个虚拟字段,不会再表中展示出来,仅仅只是起到一个
    #告诉 orm 建第三张表的关系的作用。

class Publish(models.Model):
    '''
    出版社名字、出版社邮箱
    '''
    title=models.CharField(max_length=32)
    email=models.EmailField()

class Author(models.Model):
    '''
    作者名字、作者年龄
    '''
    name=models.CharField(max_length=64)
    age=models.IntegerField()
    #作者表和作者详情表是一对一的表关系,外键字段建在任意一方都可以,
    #但是建议你建在查询频率较高的那一方。
    author_detail=models.OneToOneField(to='Author_detail')
    '''
    一对一的外键字段,创建的时候,同步到数据中,表字段会自动加_id后缀,
    如果你自己加了_id  我orm头铁,在后面再加一个_id,
    所以你在写一对一外键字段的时候,不要自作聪明的加_id 。
    '''


class Author_detail(models.Model):
    '''
    作者手机号、作者地址
    '''
    phone=models.BigIntegerField()
    addr=models.CharField(max_length=32)





posted @   大海一个人听  阅读(116)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示