趣买单数据库设计

admins表存储的是后台管理员的账户信息,用来登入admin.nmgpay.cn/admin
level 并没有使用
uname 为登入的用户名
password_pub 为密码,明文,并没有加密
其余字段如非必要,可以空置不必实现

 create_table "admins",  do |t|
    t.string   "level",               limit: 255
    t.string   "uname",               limit: 255
    t.datetime "remember_created_at"
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.datetime "created_at",    null: false
    t.datetime "updated_at",   null: false
    t.integer  "sign_in_count",       limit: 4,   default: 0, null: false
    t.string   "current_sign_in_ip",  limit: 255
    t.string   "last_sign_in_ip",     limit: 255
    t.string   "password_pub",        limit: 255
end

agents表存储的代理商信息,和user 一对多关联,一个user可以拥有多个agents, 用agents 里面的 user_id 关联users表

  create_table "agents",  do |t|
    #  商户名称
    t.string   "agent_name",         limit: 255
    #  渠道号码,现在并没有使用,可为空
    t.string   "channel_code",       limit: 255
    #  商户手机号码
    t.string   "mobile",             limit: 255
    # 银行卡号
    t.string   "bank_card",          limit: 255
    # 现在没有使用,微信使用的是user的 uid 存储openid
    t.string   "openid",             limit: 255
    # 身份证号码
    t.string   "id_code",            limit: 255
    # 状态,有初始,普通用户,认证中,认证用户状态
    t.string   "status",             limit: 255
    # 法人姓名
    t.string   "owner_name",         limit: 255
    # 身份证照片
    t.string   "id_photo",           limit: 255
    # 法人照片
    t.string   "owner_photo",        limit: 255
    # 法人银行账号姓名
    t.string   "owner_account_name", limit: 255
    # 所属区,没有使用
    t.string   "district",           limit: 255
    # 所属行业
    t.string   "business",           limit: 255
    # 实体名称
    t.string   "business_name",      limit: 255
    # 实体所在地区
    t.string   "business_district",  limit: 255
    # 实体所在地址
    t.string   "business_addr",      limit: 255
    # 实体照片
    t.string   "business_photo",     limit: 255
    # 公司名称
    t.string   "company_name",       limit: 255
    # 公司认证照片
    t.string   "company_cert_photo", limit: 255
    # T0交易默认费率 
    t.decimal  "tzero_rate",  precision: 10, scale: 2, default: 5.0
    # T0交易每日限额
    t.decimal  "tzero_quant_each",  precision: 10,    default: 30000
    # T0交易每月限额
    t.decimal  "tzero_quant_month",  precision: 10,  default: 1000000
   # T1交易默认费率
    t.decimal  "tone_rate", precision: 10, scale: 2, default: 3.0
    # T1交易每日限额
    t.decimal  "tone_quant_each", precision: 10,  default: 1000
     # T0交易每月限额
    t.decimal  "tone_quant_month", precision: 10, default:1000000
    # 银行支行联行号
    t.string   "bank_code",          limit: 255
    # 银行卡正面照片
    t.string   "bank_card_photo",    limit: 255
    # 身份证背面照片
    t.string   "id_photo_back",      limit: 255
    # 代理商关联的微信用户的id
    t.string   "user_id",            limit: 255
    # 代理商可以拥有的收银点的上限
    t.integer  "shop_limit",         limit: 4,      default: 1
    # 认证状态, 默认为“初始”
    t.string   "cert_status",        limit: 255,       default: "init"
    # 微信公众号appid(支付时使用)
    t.string   "app_id",             limit: 255
    微信公众号秘钥(支付时使用)
    t.string   "app_secret",         limit: 255
    t.string   "app_token",          limit: 255
    # 来源渠道,目前没有使用
    t.string   "channel",            limit: 255
    # 钱方账户的 appcode
    t.string   "appcode_qpay",       limit: 255
    # 钱方账户的 秘钥
    t.string   "appsecret_qpay",     limit: 255
    # 中信威富通账户的 appcode
    t.string   "appcode_citic",      limit: 255
    # 中信威富通账户的 appcode
    t.string   "appsecret_citic",    limit: 255
    # 商户所属代理商的id
    t.integer  "dealer_id",          limit: 4
    # 代理商开户银行分行名称
    t.string   "bank_branch",        limit: 255
    #代理商所在的省
    t.string   "province",           limit: 255
    #代理商所在的城市
    t.string   "city",               limit: 255
    #代理商开户银行名称
    t.string   "bank_name",          limit: 255
    #代理商开户银行所在的省
    t.string   "bank_province",      limit: 255
    #代理商开户银行所在的市
    t.string   "bank_city",          limit: 255
    # 账户类型 0为对公, 1为对私
    t.string   "account_type",       limit: 255
    #代理商在银行的账户名
    t.string   "account_name",       limit: 255
    # t0交易每笔收取的手续费
    t.decimal  "tzero_fee",      precision: 10, scale: 2, default: 1.0
    # 开户银行预留手机号
    t.string   "bank_mobile",        limit: 255
    # 用户是否开设了威富通T1账户
    t.boolean  "vbill_account"
    # 代理商的 联付 账号
    t.string   "unite_mcht_no",      limit: 255
    #代理商的联付 秘钥
    t.string   "unite_mcht_key",     limit: 255
    t.datetime "created_at",     null: false
    t.datetime "updated_at",    null: false
  end

banks表存储的是银行支行名称, 省市和支行联行号的对应关系,以备开户时查询。

    create_table "banks", force: :cascade do |t|
       # 银行所在省
       t.string   "province",       limit: 255
       # 银行所在城市
       t.string   "city",           limit: 255
       # 银行所在区
       t.string   "district",       limit: 255
       # 银行总行名称
       t.string   "bank_name",      limit: 255
       # 分行名称
       t.string   "branch_name",    limit: 255
       # 银行总行代码
       t.string   "bank_code",      limit: 255
       # 银行分行联行号
       t.string   "branch_code",    limit: 255
       t.datetime "created_at",                 null: false
       t.datetime "updated_at",                 null: false
       # 银行分行名称(前端显示需要截断版)
       t.string    "branch_display", limit: 255
    end

cards表存储的是印刷的二维码牌 和 实际收银点的对应关系,因为二维码牌已经下放,请按照原有的网址路由重新实现。

  create_table "cards", force: :cascade do |t|
    #一个16位的随机字符串, 用来作为外放的二维码的唯一标识
    t.string   "secret_no",  limit: 255
    #一个可读的数字字符串, 用来作为人眼可读的编码。
    t.string   "display_no", limit: 255
    #二维码被绑定的代理商id
    t.integer  "agent_id",   limit: 4
    #二维码被绑定的代理商名称
    t.string   "agent_name", limit: 255
    #二维码被使用状态,默认为 'init'
    t.string   "status",     limit: 255
    #二维码被绑定时间
    t.datetime "bind_time"
    t.datetime "created_at",             null: false
    t.datetime "updated_at",             null: false
    # 在随行付开户时随行付返回的商户编号
    t.string   "mno",        limit: 255
  end

Cashers 表存储了收银员信息,收银员从属于收银点(店铺),一个收银点可以有个多个收银员

 create_table "cashers"  do |t|
   #收银员姓名, 为人名
   t.string   "casher_name", limit: 255
   # 收银员关联的收银点
   t.integer  "shop_id",     limit: 4
   # 收银员手机号
   t.string   "mobile",      limit: 255
   t.datetime "login_time"
   t.datetime "created_at",    null: false
   t.datetime "updated_at",   null: false
   # 收银员绑定微信openid, 有单独的登入逻辑
   t.string   "openid",      limit: 255
   # 收银员是否在岗,如果在岗,其所在岗的收银点的收银通知  将通过模板消息发送给该收银员。 
   t.boolean  "onduty"
end

Certs表存储的是认证请求信息, 逻辑请参考admin中的请求和前端的认证用户逻辑。

  create_table "certs", do |t|
    t.integer  "agent_id",     limit: 4
    #请求的类型,普通用户还是认证用户
    t.string   "cert_type",    limit: 255
    # 通过时间
    t.datetime "approve_time"
    # 请求时间
    t.datetime "request_time"
    t.datetime "created_at",               null: false
    t.datetime "updated_at",               null: false
    # 请求是否被通过
    t.boolean  "certified"
    #拒绝理由
    t.string   "reject_desc",  limit: 255
  end

Cities表存储的是城市码表

  create_table "cities", force: :cascade do |t|
    # 城市名称
    t.string   "city_name",    limit: 255
    # 省的名称
    t.string   "provice_name", limit: 255
    # 省市编码
    t.string   "code",         limit: 255
    # 是否为省
    t.boolean  "is_province"
    t.datetime "created_at",               null: false
    t.datetime "updated_at",               null: false
  end

codes表存储的是印刷的二维码牌 和 代理商的对应关系,因为二维码牌已经下放,请按照原有的网址路由重新实现。

  create_table "codes", force: :cascade do |t|
    t.string   "sys_code",     limit: 255
    t.string   "display_code", limit: 255
    t.string   "dealer_name",  limit: 255
    t.integer  "dealer",       limit: 4
    t.integer  "dealer_lv2",   limit: 4
    t.integer  "dealer_lv3",   limit: 4
    t.integer  "shop",         limit: 4
    t.string   "status",       limit: 255
    t.datetime "created_at",               null: false
    t.datetime "updated_at",               null: false
    t.integer  "dealer_id",    limit: 4
    t.integer  "shop_id",      limit: 4
    t.string   "shop_name",    limit: 255
    t.datetime "bind_time"
    t.string   "bind_status",  limit: 255
  end

Dealers表 存储的是代理商系统的关联关系

  create_table "dealers", force: :cascade do |t|
    t.string   "dealer_name",            limit: 255
    t.string   "password_pub",           limit: 255
    t.string   "dealer_code",            limit: 255
    t.string   "provice",                limit: 255
    t.string   "city",                   limit: 255
    t.string   "contact_person",         limit: 255
    t.string   "contact_tel",            limit: 255
    t.string   "person_id",              limit: 255
    t.string   "address",                limit: 255
    t.string   "bank_name",              limit: 255
    t.string   "bank_card",              limit: 255
    t.integer  "parent_id",              limit: 4
    t.datetime "created_at",                                     null: false
    t.datetime "updated_at",                                     null: false
    t.integer  "current_index",          limit: 4,   default: 1
    t.string   "role",                   limit: 255
    t.string   "reset_password_token",   limit: 255
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",          limit: 4,   default: 0, null: false
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.string   "current_sign_in_ip",     limit: 255
    t.string   "last_sign_in_ip",        limit: 255
    t.string   "uname",                  limit: 255
    t.integer  "level",                  limit: 4,   default: 1
  end

payments表存储的是每一笔支付的信息

  create_table "payments", force: :cascade do |t|
    t.string   "openid",          limit: 255
    #金额,单位为元
    t.decimal  "amount",   precision: 10, scale: 2
    t.string   "status",          limit: 255
    t.datetime "reqtime"
    t.datetime "created_at",    null: false
    t.datetime "updated_at",   null: false
    # 我方系统订单号
    t.string   "orderid",         limit: 255
    # 商品描述
    t.string   "desc",            limit: 255
    t.integer  "shop_id",         limit: 4
    t.integer  "casher_id",       limit: 4
    t.string   "casher_name",     limit: 255
    t.string   "agent_name",      limit: 255
    t.string   "channel_name",    limit: 255
    t.string   "app_code",        limit: 255
    t.string   "shop_name",       limit: 255
    t.integer  "agent_id",        limit: 4
    t.string   "sec_no",          limit: 255
    t.string   "channel_orderid", limit: 255
    # 威富通订单号
    t.string   "swift_orderid",   limit: 255
    t.string   "pay_method",      limit: 255
    t.string   "pay_source",      limit: 255
    t.datetime "pay_time"
    # 支付状态
    t.string   "pay_status",      limit: 255
    t.string   "pay_result_info", limit: 255
    t.string   "good_name",       limit: 255
    t.boolean  "is_subscribe"
    t.string   "attach_info",     limit: 255
    t.string   "pay_bank",        limit: 255
    t.string   "user_mark",       limit: 255
    t.string   "pay_end_time",    limit: 255
    # 威富通商户号
    t.string   "wift_mch_id",     limit: 255
  end

codes 表存储的是收益记录

  create_table "profits", force: :cascade do |t|
    #代理商级别
    t.integer  "dealer_level", limit: 4
    #收益类型
    t.string   "profit_type",  limit: 255
    #区段,月 如 201607
    t.string   "period",       limit: 255
    t.string   "status",       limit: 255
    t.decimal  "rate",                     precision: 10, scale: 2
    t.decimal  "limit",                    precision: 10
    t.datetime "created_at",                                        null: false
    t.datetime "updated_at",                                        null: false
    t.string   "channel",      limit: 255
    t.integer  "dealer_id",    limit: 4
  end

shops存储了收银点信息,收银点属于商户,一个商户可以有多个收银点。

 create_table "shops" do |t|
    # 收银点名称
    t.string   "shop_name",       limit: 255
    # 商户id
    t.integer  "agent_id",        limit: 4
    # 收银点固定收银金额
    t.decimal  "fix_amount",         precision: 10, scale: 2
    # 支付方式,暂时无用
    t.string   "pay_method",      limit: 255
    # 收银点固定收银金额
    t.string   "fix_amount_desc", limit: 255
    # 支付码, 为绑定的二维码的secret_no
    t.string   "pay_code",        limit: 255
    t.datetime "created_at",                                           null: false
    t.datetime "updated_at",                                           null: false
    # 微信支付开启状态
    t.string   "wepay_status",    limit: 255
    # 支付宝支付开启状态
    t.string   "alipay_status",   limit: 255
    # 在岗的收银员的openid
    t.string   "onduty_casher",   limit: 255
    # 代理商id
    t.integer  "dealer_id",       limit: 4
  end

用户表存储的是用户的信息,一个用户可以拥有多个商户

  create_table "users", do |t|
    # 此处存储的是openid   
       t.string   "uid",   limit: 255
    # 微信昵称    
       t.string   "nickname",  limit: 255
       t.integer  "sex",  limit: 4
    # 微信头像地址      
       t.string   "avatar",    limit: 255
       t.datetime "created_at",     null: false
       t.datetime "updated_at",    null: false
       t.datetime "birthday"
       t.string   "city",                   limit: 255
       t.string   "province",               limit: 255
    # 一个用户可以拥有的商户的上限
       t.integer  "agent_limit",            limit: 4,                  default: 1
       t.string   "dealer_code",            limit: 255
    end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,563评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,835评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,531评论 18 399
  • 即便是周一,好忙的一天,也抽个空赏花散步,偶遇武大一角粉梅,美美的,心情好美。 좋은 날에 꽃과 만난다.
    hyohye阅读 198评论 0 0
  • 待填坑
    nziyouren阅读 270评论 0 0