V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
amosmz
V2EX  ›  数据库

数据库设计相关的,想问问一些建议

  •  
  •   amosmz · 2019-07-04 23:12:47 +08:00 · 1645 次点击
    这是一个创建于 1964 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.状态码或者类型相关的(tinyint) 现公司 不使用 0 当作默认值,直接以 1、2、3 开始,因为个人偏向 0、1 开始。所以问下 0 到底有没有必要拿来使用,是否存在什么好处的说法?个人感觉可能也是差不多的

    2.有一个单表的数据,每个月可能有是上百万的数据插入,有点类似将每一件食品的二维码都录入到数据库当中,是否有必要按照几个大类来分开来,让单表变成多表。(担忧是订单表关联要先根据类型,在跟据 ID 查找,是否存在不合理的设计)

    3.设计到多级代理的利润,订单表的利润部分应该怎么设计

    目前系统设计 是将多级的利润都放在订单表里,目前有 3 级,所以 6 个字段存储起来.个人感觉不合理所以重新设计这方面

    最终还要统计利润的总额

    起步想法表格,想法可能偏新手,所以想咨询下大家,谢谢

    订单表  利润表(这样处理合理吗--这样多级利润就是多条数据,但是担心数据量太多了)
    
    id      order_id
    
    amount  user_id 属于谁的利润
    
            amount  利润金额
    
    7 条回复    2019-07-24 14:53:11 +08:00
    kaychen
        1
    kaychen  
       2019-07-05 01:03:21 +08:00   ❤️ 1
    1. 如果是状态码或类型不使用 0,是有好处的. 比如,PHP 中,用 empty 判断 0 和空是等价的. 当需要查询所有状态码或类型的时候,一般该字段传参为 0 或空就代表所有.如果 0 表示了某种状态,那还需要单独再处理下呢.
    jorneyr
        2
    jorneyr  
       2019-07-05 06:42:24 +08:00   ❤️ 1
    表示状态时,1、2、3 表示正常状态,有时候我会用 0 表示没有设置过值,表示未知,看情况吧,都有道理。
    amosmz
        3
    amosmz  
    OP
       2019-07-05 09:05:26 +08:00
    @kaychen 嗯嗯,那按照原来的来,感谢
    hbolive
        4
    hbolive  
       2019-07-05 10:55:07 +08:00
    如果不是非用 0 不可,那尽量不要用 0 了,因为某些语言下,0==false
    hbolive
        5
    hbolive  
       2019-07-05 10:58:25 +08:00   ❤️ 1
    第 2 个问题,分成多表是基于什么考虑,是怕数据表太大查询慢?如果按类别分,可能会跟业务冲突,那按 ID 分表吧。。
    amosmz
        6
    amosmz  
    OP
       2019-07-05 13:09:41 +08:00
    @hbolive 对怕数据表太大了,主要根据业务可以分成几大类,ID 分表的话大概多少的数据分一次好呢?
    zibber
        7
    zibber  
       2019-07-24 14:53:11 +08:00
    订单和账务分开
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1085 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:40 · PVG 06:40 · LAX 14:40 · JFK 17:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.