V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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 · 2020-03-16 01:20:30 +08:00 · 2395 次点击
    这是一个创建于 1732 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的工地是广告代理公司,广告公司赚钱就是靠(从下游媒体这拿到的折扣>给上游客户的折扣)赚差价。
    我现在想要设计个数据库满足自己统计业务的需要:

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


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

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


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


    请各位不吝赐教。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1429 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:03 · PVG 01:03 · LAX 09:03 · JFK 12:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.