zoukankan      html  css  js  c++  java
  • 数据库设计常考题目简要分析

    由于最近游戏项目数据库需求,需要设计一些一对多和多对多的数据库表,平时呢,用别人的表多,很少自己设计过,虽然大学那会练习过,貌似这个是数据库最基础的吧?

    好了圆规正传!

    这里我只是简单的谈谈一对多和多对多的设计基本方法:

    《1》一对多

    外键应该放到“多”的那个表中,比如一个零件,他就有可能有多个“类别”,我们可以在零件表中根据一个零件Id 查询到某一个零件,然后根据这个零件的“类别”,在类别表中查询类别的属性等等。数据库设计如下:

    零件表:

     零件ID   零件名称  零件形状  零件重量  零件类别(主要是材质方面的)

    类别表

    零件类别   密度   元素名称   发现者 

    以上就是一对多的情况。

      《2》多对多

     多对多就比较复杂了,需要添加一张关系表。

     例如上次我笔试一道题目,就有这么一个关系:掉落物品和背包的关系。一种物品可能在多个背包里面存在,一个背包里面可能存在多种物品。而这里的背包呢,他有可能在地上有多个。那这里就要查询某个包里面的某个物品的属性或者这个物品在世界上总共有多少?

    什么都不说了,稍微东数据库数据的人一看就知道怎么设计!但是实际工作就是这么样子的,忘了的朋友赶快补补课吧。我给出一个我认为正确的表结构。

    物品表

    物品名称    物品掉落概率   物品价格   物品生产时间   市场价格   

     背包表

    背包id    背包容量   背包颜色

     关系表

    id       背包id     物品名称    物品数量

    通过查询关系表的id,可以分别查询到背包和物品,实际上就是将物品表和背包表的外键分别放到了关系表中。

    以上总结,有可能由错误,以后在多学点后在说吧。

  • 相关阅读:
    数字图像处理(一)之灰度转换和卷积python实现
    ArcEngine+C# 森林资源仿真系统 核心代码
    Dijkstra和Floyd算法遍历图的核心
    python像操作文件一样操作内存的模块 StringIO
    python操作Redis方法速记
    python中时间处理标准库DateTime加强版库:pendulum
    utittest和pytest中mock的使用详细介绍
    《金字塔原理》 读书笔记
    python轻量级orm框架 peewee常用功能速查
    docker中安装的mysql无法远程连接问题解决
  • 原文地址:https://www.cnblogs.com/chunlinge/p/3546660.html
Copyright © 2011-2022 走看看