zoukankan      html  css  js  c++  java
  • 关于数据库表设计的一个问题

    这是15年想到的一个问题,今天看到了之前的文件,决定挺有趣的,想把它写出来,和大家分享一下。

    问题背景。现有一个实体店商家想通过互联网销售自己的商品。请为他设计一个数据库。

    当时毫不犹豫就是两张表,供货厂商表,商品信息表两者多对多,那就额外需要一张中间表。

    好,一段时间后,老板说有些商品需要增加“长度”属性(基于现实考虑,有些商品也不需要“长度”属性)。那怎么办?为了节省空间 ,商品信息表再来一张表存长度(此时最好预留一些字段,假如老板又要添加一个“宽度”属性呢? )。

    以为这就解决了,天真! 假如老板要添加一个属性,这个属性与“长度”和“宽度”存在依赖关系,那怎么办??。那就得再来一张表。 而且发现一个问题没有? 老板(需求)提的要求是在当前表下的最优解,这是局部最优解,那一般是很难达到整体最优解的。  那要怎么办?

    (解决问题的过程就是提高的过程。)

    我的解决方案:

    再设计之初 商品信息应该分类(不能将所有商品放在一个“类里”,有点“面向对象”的意思哈,这是我15年的想法),分类之后,哪些商品需要“A”属性,先看看该类商品是否有预留字段,有最好,没有可以再添加也可以额外加表、关联。这样做有两点好处,第一节省空间,第二减少了表之间的“耦合度”

  • 相关阅读:
    差分约束系统
    LCA
    CRB and Candies LCM 性质
    【强连通分量】 Kosaraju和Tarjan算法 (标准模板+详细注释)
    最小生成树
    堆优化的迪杰斯特拉算法
    SPFA算法
    Floyd算法
    Dijkstra算法
    图论中环的判断
  • 原文地址:https://www.cnblogs.com/smellpawn/p/10811261.html
Copyright © 2011-2022 走看看