数据库设计

作者: qyfl | 来源:发表于2017-12-15 23:14 被阅读0次

建立与数据库的连接

开发第一步首先建立与数据库的连接,否则测试都用不了。
在 settings 中的 DATABASES ,代码如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database_name',
        'USER': 'your_name',
        'PASSWORD': 'your_password',
        'HOST': '127.0.0.1',
    }
}

然后点击 TOOLS--->Run manage.py Task 输入命令:

makemigrations

生成 Django 项目默认的数据表,然后使用命令:

migrate

将生成的数据表上传到数据库,这时候可以在数据库中看到那些表。

设计 app

设计 user app

在 web 系统中,user 大多是首先被设计的,因为用户的属性在开发之前就很清楚。点击 Task 使用命令:

startapp users

在 settings 中的 INSTALLED_APPS 中添加新建的 app,只要是 app 就都要添加到 settings 中。Django 默认生成的数据表中有 user 表,但是大多情况下默认的表字段是不够用的,所以我们都需要在表中添加字段。进入 users 下的 models.py 中添加我的需要的字段。需要继承默认的 user 表。代码如下:

from django.db import models
from django.contrib.auth.models import AbstractUser

class UserProfile(AbstractUser):
    nick_name = models.CharField(max_length=50, verbose_name=u"昵称", default="")
    birday = models.DateField(verbose_name=u"生日", null=True, blank=True)
    gender = models.CharField(choices=(("male", u'男'), ('female', u'女')), default='female', max_length=6)
    address = models.CharField(max_length=100, default=u'')
    mobile = models.CharField(max_length=11, null=True, blank=True)
    image = models.ImageField(upload_to='image/%Y/%m', default=u'image/default.png', max_length=100)

    class Meta:
        verbose_name = u'用户信息'
        verbose_name_plural = verbose_name

    def __unciode__(self):
        return self.username

A model is the single, definitive source of information about your data. It contains the essential fields and behaviors of the data you’re storing. Generally, each model maps to a single database table.

  • Each model is a Python class that subclasses django.db.models.Model.
  • Each attribute of the model represents a database field.
    -------------Django官网文档

模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库中唯一的一张表。

  • 每个模型都是 django.db.models.Model 的一个 Python 子类。
  • 模型的每个属性都表示为数据库中的一个字段。

根据官方文档,我们可以知道,models 可能就是数据库抽象,可以直接操作 models 从而改变数据库里的信息。

models 中有很多函数,文档的链接已经给出,这里就不一一列举了,后面的内容都是建立在看过文档中对于 models 描述的基础上。我还是贴出对于初学者有帮助的 Django1.8 版本的中文文档

然后重载 settings 中的 AUTH_USER_MODEL,代码如下:

AUTH_USER_MODEL = 'users.UserProfile'

这时候可以使用生成数据表和提交数据表的命令,这时候可以在数据库的 user_profile 表中看到我们添加的字段和原有字段。

验证码功能只会和 user 产生关系,所以放在 user 中实现。首页轮播图其实和 user 没有太大关系,但是因为功能非常独立,所以先放在 user 中实现。 代码和 UserProfile 类似,但是就无需继承 AbstractUser,因为数据库中没有默认的验证码和轮播图的表,所以继承 models.Model 新建表。

设计 course app

因为在需求分析阶段 course 的属性就知道了。直接添加,注意,有的字段有外键,外键先实现,不然没法测试。

设计 organization app

同上

设计 operation app

operation 存在的意义是防止出现循环,比如课程评论有用户信息,用户可以添加评论。没有建立在课程和用户之上的 app 不好搞。

相关文章

  • 阿里数据库开发规范:谁还敢说你的数据库设计的“烂”

    数据库设计几个规范: 数据库命名规范、数据库基本设计规范、数据库索引设计规范、数据库字段设计规范、数据库SQL开发...

  • 数据库设计

    第六章 数据库设计 学习重点: 数据库设计的基本步骤; 数据库设计各阶段的具体设计内容; 数据库设计各阶段的设计描...

  • 规范化数据库设计

    规范化数据库设计 为什么需要数据库设计 当数据库比较复杂时我们需要设计数据库 糟糕的数据库设计 : 数据冗余,存储...

  • MySQL 入门(四)

    九、规范化数据库设计 1. 为什么需要数据库设计 当数据库比较复杂时,需要设计数据库; 糟糕的数据库设计:数据冗余...

  • 计算机二级java程序语言设计

    公共基础 数据库 数据库设计过程主要包括需求分析、概要结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运...

  • 商城表结构设计

    (一)购物商城数据库设计-前期准备 (二)购物商城数据库设计-商品表设计 (三)购物商城数据库设计-商品表DDL(...

  • Mysql 规范

    Mysql 规范 数据库命名规范总结 数据库基本设计规范 索引设计规范 数据库字段设计规范 数据库SQL开发规范 ...

  • 数据库设计

    一、数据库设计概念 1. 数据库的生命周期 ①数据库分析与设计阶段包括需求分析、概念设计、逻辑设计和物理设计。②数...

  • 2018-04-19

    任务2.5 系统数据库设计 什么是数据库设计 数据库设计,是指根据用户需求,在某一具体的数据库管理系统上,设计数据...

  • Power Designer—数据库设计步骤

    数据库设计步骤 需求分析 — 概念结构设计 — 逻辑结构设计 — 物理结构设计 — 数据库的建立和测试 — 数据库...

网友评论

    本文标题:数据库设计

    本文链接:https://www.haomeiwen.com/subject/nqejwxtx.html