› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
jgpliskin
V2EX  ›  MySQL

[数据库表的设计]请教下多个表间是多对多关系该如何设计

  •  
  •   jgpliskin · Mar 16, 2020 · 3080 views
    This topic created in 2394 days ago, the information mentioned may be changed or developed.
    我的工地是广告代理公司,广告公司赚钱就是靠(从下游媒体这拿到的折扣>给上游客户的折扣)赚差价。
    我现在想要设计个数据库满足自己统计业务的需要:

    大致业务关系是这样的:
    内部:
    1) 一个客户 ID 会有一个销售(员工)ID 去跟进,但是会有转户的情况,就是说 19 年 A 君跟进的客户 20 年会由 B 君跟进。
    2) 一个客户会通过多个供应商在多个媒体上开账号投放,同时一个媒体也会有多个账户在上面投放
    3) 客户侧:媒体不同,行业不同,给予客户的折扣也不同
    4) 媒体侧:和客户侧一样,客户不同,行业不同,给予的折扣也不同
    5) 需要统计每天每个投放账户的日消耗


    想问下:
    A. 1)的情况是不是也算多对多关系?除了建映射表有别的设计方法不?
    B. 我现在主要的问题是不知道该把给客户的折扣和给媒体的折扣放在哪个表,是分别单独建一张客户折扣表和媒体折扣表还是说直接记录在日投放数据这张表里?
    C. 如果是把折扣单独分开建表的话,像这种 分客户分行业分媒体的政策该怎么画关系图?

    这里我画了给上游客户的折扣,但是从下游媒体这拿到的折扣政策我不知道该怎么画了。
    或者说是应该把客户侧的折扣和媒体侧的折扣都记录在映射表里?


    D. 由于从媒体侧拿到的折扣政策会随时间改变,所以需要记录历史折扣,我的想法是录入数据的时候匹配当时的政策写死,不知道有没有什么更好的方法?
    E. 由于需要统计历史投放数据,所以像这种日消耗数据,大家一般是怎么记录的呢?是当成一条订单记录还是用时间和账户做联合主键记录呢?


    请各位不吝赐教。
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   756 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 20:06 · PVG 04:06 · LAX 13:06 · JFK 16:06
    ♥ Do have faith in what you're doing.