《自己动手设计数据库》第7章 设计表结构

2023-11-07

第7章 建立表结构

到此章为止,你手上应该有3张列表了:

  1. 主题列表
  2. 经过评审的特征列表,又名初始字段列表
  3. 计算字段列表

定义初始表列表

要执行这一段内容,还需要第5章定义的任务目标

确定隐含主题

首先不去看主题列表,这里先去看初始字段列表,原因后面解释。

先把字段按照主题归类,即根据你的初始字段列表中的字段值来创建主题,并把该主题添加进初始表列表,这么做的原因有两个:

  1. 判断自己是否对这些字段都了解
  2. 可以在接下来的过程中与主题列表进行比较,看是否有隐含主题

此处建立第一版初始列表,注意,有的字段可能可以描述多个主题!。

使用主题列表

在这一步中我们会用到主题列表,并创建第二版初始表列表。具体步骤:

  • 消除重复项

寻找第一版初始表列表主题表中名称相同的项,确认其主题是否相同。

如果主题相同则划掉主题列表中的该项。

如果不同,那么就将其中一个列表中的项进行重命名,再将这两项添加进第二版初始表列表中。并将这两项从列表中划掉。


  • 消除表示相同主题的项

前面我们去掉了名称相同的项,接下来就是判断是否含有名称不同,但是主题相同的项了。

主题列表中的每一项与第一版初始表列表中的每一项进行比较。

如果出现主题列表中的一项与第一版初始表列表中的一项或者多项主题相同的话,

(当出现一对多的情况时)先修正第一版初始表列表中的项,

然后比较该项在主题列表第一版初始表列表中哪个名字比较贴近该主题,就将第一版初始表列表中的项修改成该名字,

然后添加进第二版初始表列表中,

最后删除主题列表中的该项。


  • 合并主题列表和第一版初始字段列表中的项

这一步最简单,将剩下的主题列表的项添加进第二版初始表列表中。到此为止,第二版初始表列表完成。主题列表也完成他的工作了,可以休息了。

使用任务目标

在这里第三次修改初始表列表,也就是创建第三版初始表列表

在这个步骤中,将使用任务目标检验前两个步骤中是否遗漏

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《自己动手设计数据库》第7章 设计表结构 的相关文章

  • nrm 安装后报错

    Error ERR REQUIRE ESM require of ES Module D npm node modules nrm node modules open index js from D npm node modules nrm
  • python async 异步

    1 requests 包不支持异步 使用 requests async import asyncio import threading import time from aiohttp import ClientSession import
  • g++配置选项-std=c++11

    如何配置g 选项 std c 11 g 命令改为 g std c 11 qt配置std的c 11 QMAKE CXXFLAGS std c 11 如果没有配置c 11 就会报如下错

随机推荐

  • Comparable、compareTo、Comparator、compare之间有什么区别

    Comparable和Comparator是Java的接口 而compareTo是Comparable接口中的方法 compare是Comparator中的方法 在Scala中Ordered相当于Java中的Comparable 在Scal
  • UML2面向对象分析与设计(第2版) 谭火彬 杂记

    首先 来讲讲我对泛化的理解 其实这是站在的视角的不同而表述的不同 泛化是站在父类的角度 父类给孩子的方式叫泛化 而继承是站在孩子的角度 儿子继承父类的方式叫继承 其实上了谭老师大概一章的课程 并且我觉得谭老师真的是对面向对象很有认识的 这门
  • java设计模式之建造者模式

    定义 建造者模式将一个复杂对象的构建过程与它的表示分离 使得同样的构建过程可以创建不同的表示 属于创建型设计模式 对于用户而言 使用建造者模式只需指定需要创建的类型就可以获得对象 创建过程及细节不需要了解 根据建造者模式的定义 可以简单的理
  • 关于udelay(); mdelay(); ndelay(); msleep();

    在 inux river开发中 经常要用到延迟函数 msleep mdelay udelay 虽然msleep和mdelay都有延迟的作用 但他们是有区别的 mdeday还忙等待函数 在延迟过程中无法运行其他任务 这个延迟的时间是准确的 是
  • 分享几个直接访问的GPT项目,ChatGPT智能最佳实践

    自美国时间12月2日上线以来 美国硅谷的初创公司OpenAI推出的ChatGPT 已经拥有超过一百万的用户 受到热烈的讨论 它既能完成包括写代码 修bug 代码改错 翻译文献 写小说 写商业文案 创作菜谱 做作业 评价作业等一系列常见文字输
  • 在linux系统启动springboot项目

    1 springboot项目打包 在项目根目录的地址栏输入cmd并回车 执行如下命令 生成jar mvn clean package 2 部署并执行 传到linux系统的指定位置 在安装好jdk和数据库等相关环境 执行jar 1 java
  • 【TA-霜狼_may-《百人计划》】美术2.7 Metallic 与 Speculer流程

    TA 霜狼 may 百人计划 美术2 7 Metallic 与 Speculer流程 TOC TA 霜狼 may 百人计划 美术2 7 Metallic 与 Speculer流程 2 7 1 概念 2 7 2 两种流程 通用贴图 2 7 3
  • Sass 条件语句

    本节我们来学习 Sass 中的条件语句 可以使用 if 指令来判断条件表达式的值 然后控制输出 Sass 中的 if else 等指令和 JS 中的 if else 类似 if 指令 当 if 指令后面的表达式返回值为 true 时 输出花
  • 使用Arduino开发ESP32(19):获取网络时间

    文章目录 目的 基础说明 示例演示 额外说明 网络时间服务器 struct tm结构体与格式化输出 time t 和 time 总结 目的 时间是软硬件系统或设备中比较重要的东西 特别是需要和外部进行交互时就更加需要用到有个统一的时间了 目
  • java web前端面试题_web前端笔试试题(答案)

    一 填空题 每空1分 共70分 1 JS中的数据类型有哪些 string number undefined null boolean Object Array Function 3分 2 JS中强制类型转换为number类型的方法有 par
  • 西安现场打铁记

    打铁游记 Day1 去寺庙烧了烧香拜了拜佛 去了去毒 然后在热身赛快速猜对 直接过了A B题暴力模拟一下100多行代码也是过了 最后80多名 感觉不错 美滋滋 Day2 运气都用在的昨天的热身赛 今天2发才过了B 对于F题没敢去猜 3个小时
  • lightGBM介绍,以及xgboost与lightGBM的区别

    一 lightGBM 1 简介 lightGBM全称为light Gradient Boosting Machine 2017年经微软推出 是XGBoost的升级版 在大规模数据集上运行效率更高 GBDT在每一次迭代的时候 都需要遍历整个训
  • 解决虚拟机Linux获取不到ip或者登陆地址tty1获取不到ip方法

    查询不到ip虚拟机127 0 0 0 使用root登陆 us root 1 如果ifconfig命令无法使用或者查不到也可以 然后使用 dhclient v命令 1 然后ip addr 就可以了
  • 新创建多模块工程执行maven编译打包出现non-resolvable parent pom异常

    新创建多模块工程 在执行mvn clean install时抛出non resolvable parent pom 找不到父pom异常 FATAL Non resolvable parent POM for com alibaba unkn
  • 中文核心期刊与科技核心期刊区别?

    投稿前一定要先搞清楚各大期刊的区别 在我们发表论文之前 一定要先搞清楚各大期刊的区别进行精准投递 由于各期刊的等级分类不同 评选组织不同 评选范围和评选的领域不同 在选择的时候 一定要搞清楚各期刊的类别划分 不仅可以帮助我们精准定位自己的学
  • C++11智能指针之unique_ptr

    1 智能指针概念 智能指针是基于RAII机制实现的类 模板 具有指针的行为 重载了operator 与operator gt 操作符 可以 智能 地销毁其所指对象 C 11中有unique ptr shared ptr与weak ptr等智
  • 闲鱼项目玩法实战,月入破万实战指南!

    一些闲鱼的实操技巧玩法 做短期项目都同学一定收藏下 1 相同属性的商品上架1 2个即可不宜过多 每天上新1 2为宜 过多都会限流 2 商品名称根据用户可能会输入的关键词去拆分下逐个输入搜索框 如果有搜不到的 就是谐词汇 不断尝试更换 直到都
  • ESP32 S3-OLED显示小数函数

    ESP32 S3 ardino平台 配中景园7针0 96OLED屏显示小数 OLED网上的驱动代码一般厂商发货会提供驱动程序 但是显示小数很多都没有编写 这里编写了一段可显示任意位小数的代码 以正点原子代码为基础 需要显示有符号的小数程序稍
  • 云原生全栈体系(二)

    Kubernetes实战入门 第一章 Kubernetes基础概念 一 是什么 我们急需一个大规模容器编排系统 kubernetes具有以下特性 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器
  • 《自己动手设计数据库》第7章 设计表结构

    第7章 建立表结构 到此章为止 你手上应该有3张列表了 主题列表 经过评审的特征列表 又名初始字段列表 计算字段列表 定义初始表列表 要执行这一段内容 还需要第5章定义的任务目标 确定隐含主题 首先不去看主题列表 这里先去看初始字段列表 原