美文网首页思科DevNet思科ACI
趣买单数据库设计

趣买单数据库设计

作者: dominic0312 | 来源:发表于2017-02-03 13:53 被阅读0次

    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
    

    相关文章

      网友评论

        本文标题:趣买单数据库设计

        本文链接:https://www.haomeiwen.com/subject/jtddittx.html