• 数据库设计心得


     

    1.原始单据与实体之间的关系

    可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是 一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面 大有好处。

    比如:一份图书资料,在我们设计的数据库中,就对应三个基本表:图书详情表、图书类型表、用户表、购物车表、订单表。这就是“一张原始单证对应多个实体”的典型例子。

    2.主键与外键

    一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。 主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也 没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体 之间的连接。

    3.基本表的性质

    基本表与中间表、临时表不同,因为它具有如下四个特性:

    • 原子性。基本表中的字段是不可再分解的。
    • 原始性。基本表中的记录是原始数据(基础数据)的记录。
    • 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。
    • 稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。

    理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。

    4.范式标准

    基本表及其字段之间的关系, 应尽量满足第三范式。但是,满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。

     

  • 相关阅读:
    Vue的router和route的区别
    对cookie进行编解码用到的函数escape,unescape
    动态控制按钮的禁用和启用
    追踪算法总结
    MATLAB imread读取imwrite保存图片前后矩阵数据不一样
    图像质量评价和视频质量评价(IQA/VQA)
    c++ 使用torchscript 加载训练好的pytorch模型
    Transformer(self attention pytorch)代码
    tensorflow 单机多GPU训练时间比单卡更慢/没有很大时间上提升
    python+selenium爬取关键字搜索google图片
  • 原文地址:https://www.cnblogs.com/hdows/p/10006901.html
Copyright © 2020-2023  润新知