zoukankan      html  css  js  c++  java
  • 如何存储数据

    CZ

    匠友们,请教一个细节问题:

    在一张表里,有一个字段"图件类型",包括 "平面图,柱状图,统计图",我现在是将该字段设计为 varchar 类型,直接存放类型名称。

    现在有同事建议,应该设计为interger类型,然后定义一个枚举变量,

    enum MapType
    {
    AllMapType=0,
    Plane=1,
    Histogram,
    Cartogram
    };

    理由是,

    1)这样查询的效率高。

    2)避免使用字符串比较(其实没有避免)。

    我觉得他说得有些道理,

    但是,这样编码时就多了一层无谓的转换:因为界面上显示是类型名称,每次写入时需要将类型名称转换为代码(即对应的枚举变量),读出来时要将代码转换为类型名称。

    第一次做数据库的东西,不知道大家在实际中遇到这类问题时是怎么处理的?

    STST

    不要从"如何存"开始考虑,要从"如何用"开始考虑

    先把高层的概念,类型整理好,最后考虑怎么把这些概念存到数据库

    这是面向对象的设计方法

    如果用面向过程的设计,当然可以先考虑如何存

    "如何存"只是一个最具体的细节罢了

    在往数据库里存之前,最好用平面文件先实现一边

    CZ

    STST

    这样可以确保你的概念分层很清晰

    确保从平面文件转到数据库的过程很平滑,那么你的整个设计就是比较好的了

    CZ


    好像之前听过这样的说法

    但是一般不都是先把数据库设计好然后就直接写代码吗?

    STST

    恩,当然是书上的,我只能说书上的,我只是一个读者,复读机罢了

    CZ

    @怀化-英界尔-C 读了后能理解,就已经很牛了。很多书我通常是读不下去。以前也很少接触数据库。

    STST

    从OOD的视角来看,UI和Data都不是面向对象的,为了不让这两层污染我们的OOD设计,就出现了两个专门的隔离层,一个就是ORM,一个就是MVC,这样我们在这两个隔离层之间可以自由使用OOD的各种设计方式

  • 相关阅读:
    前端常用代码
    前端常用代码
    Velocity模版自定义标签
    算法思想
    java特性之三--多态性
    非线性数据结构--图
    接口
    java特性之四--抽象
    (数据结构与算法) 堆
    数据结构_平衡二叉树(AVL树)
  • 原文地址:https://www.cnblogs.com/stst/p/4908843.html
Copyright © 2011-2022 走看看