Giter Site home page Giter Site logo

skr-shop / manuals Goto Github PK

View Code? Open in Web Editor NEW
2.4K 140.0 412.0 2.29 MB

Do design No code 💻📱🛒📚

Home Page: http://skrshop.tech/

HTML 100.00%
shop shopping user-system shop-cart shop-system shop-order payment-gateway shop-promotions sku-spu rbac

manuals's People

Contributors

addstone avatar astraw99 avatar baijunyao avatar elricli avatar helei112g avatar tigerb avatar veaer avatar xushuhui avatar yf4n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

manuals's Issues

商品模块

大佬,请教一下,商品模块那里,sku表和attr属性表是不是需要一个sku_id来建立关联

transaction_id和transaction_code区别和作用

transaction_id VARCHAR(64) NOT NULL COMMENT '系统唯一识别交易号',
transaction_code VARCHAR(64) NOT NULL COMMENT '支付成功时,该笔交易的 code',

支付系统中这两个字段的区别和作用在哪里呢?

关于活动方案活活动场次的问题

活动方案不应该只限制到日期,应该可选时分秒,比如我有一个九宫格的抽奖活动要从6月10号10点开始持续到6月17号10点,按现有的设计怎么弄?总不能去增8个场次吧

用户系统设计

看了楼主数据库设计,抽象了accout的表,与登录相关的账号表都在里面,但是这也有点不好,如果用户数很多,比如多个公司的员工账户都写到这个表,是不是会慢,个人感觉还是分开好点,减少单表的压力,交流交流

支付流水表和退款表中的transaction_id是否需要一致?

问题一:同个订单,支付之后申请退款,那退款表(pay_refund)中的transaction_id是否需要和支付流水表(pay_transaction)中的transaction_id一致?

问题二:退款表中的transaction_id的用处?如果是标记退的支付流水表的哪条订单数据,字段名修改为pay_transaction_code或transaction_code是否更合适?

关于SPU和SKU的疑问

关于SPU和SKU有个疑问,像图书一类的商品一般是没有多种销售属性的,这种商品怎么添加sku?如果不添加sku,那下单时怎么处理?如果硬添加一个SKU感觉也不太合理,因为SKU应该和销售属性关联的。我看了一下淘宝的数据格式,图书商品sku就是null,是没有sku的,但是这样的话添加购物车、下单时不知道怎么处理的。有大佬能分享一下经验吗?

商品模块

忘记了早期是不是有商品模块,现在是没有了吗?

账户服务数据库表相关疑问

最近在学习skrshop设计,发现一些疑惑,希望得到大佬们的帮助;
1、auth_role_staff与auth_role缺少关联关系,或者没理解设计;
2、auth_role、auth_role_staff使用了text类型,数据库设计应该不建议使用text类型;
3、account_user、staff_info都出现email、phone,感觉staff_info可去掉;

用户、订单、套餐商品该如何关联呢?

想是不是可以有个用户套餐关联的表,

table user_meal
column: user_id,order_id,meal_id

还是直接在订单表关联呢

table order
column: order_id, user_id, meal_id

大家这种关联关系倾向于那种呢?

交易模块,关于重复支付的交易表设计的几点疑问

  1. transaction_code VARCHAR(64) NOT NULL COMMENT '真实给第三方的交易code,异步通知的时候更新',这个字段具体是怎么处理呢,一般来说,在发起支付的时候,不是就已经传递了第三方的订单编号了么,这个在异步通知的时候,怎么再给第三方呢?
  2. 重复支付的情况:
    1. 针对一笔订单的相同渠道的支付。第一笔订单已经发起了支付,会在pay_transaction表中记录一条支付订单。假设,第一条支付订单还在等待异步回调过程中,且没有超时。用户在这个情况下再次发起支付,那这笔订单是直接进pay_repeat_transaction表,还是说先进pay_transaction表,额外在pay_repeat_transaction表中记录重复数据
    2. 针对一笔订单的不同渠道的支付。情况类似,也有相同的疑问?

用户模块

有个点想请教一下:

  1. 账户服务的表设计,您这边的账户表应该都是在账户服务中维护吧,如果说我后面想做好几个系统的会员服务,
    是让账户服务统一维护
    还是让各自的会员服务去单独维护,仅仅引用一下账户服务的uid

  2. 如果是分库的,各个系统的会员信息表,是都放在账户服务的实例上,还是放到各自的数据库实例上

关于购物车存储

不知道购物车放入redis 是怎么设计的?
我看现在很多方案是 hmset id product count 这么个结构
我不知道这边的方案是怎样的 ?什么样的方式存储到redis

购物车加锁的问题

收益良多, 先感谢贡献者们

在购物车模块中 是这么讲解的

购物车的最后一步是生成订单,这一步最要紧的是需要给购物车加锁,避免提交过程中数据被篡改,多说一句,很多人写的Redis分布式锁代码都存在缺陷,大家一定要注意原子性的问题,这类文章网络上很多不再赘述。

加锁成功之后,我们这里有多种做法,一种是按照DB涉及组织数据开始写表,这适用于业务量要求不大,比如订单每秒下单量不超过2000K的;那如果你的系统并发要求非常高怎么办?

其实也很简单,高性能的三大法宝之一:异步;我们提交的时候直接将数据快照写入MQ中,然后通过异步的方式进行消费处理,可以通过通过控制消费者的数量来提升处理能力。这种方法虽然性能提升,但是复杂度也会上升,大家需要根据自己的实际情况来选择。

问题是为何需要给购物车加锁?

  1. 下单的时候如果提交了一个购物车的id, 那么不管是同步落单还是异步落单, 都会做一个全购物车的校验工作. 如果落单成功, 则清理掉购物车即可. 如果失败, 则购物车本身不用发生变化. 似乎不需要加锁便可以完成
  2. 加锁是为了落单前不做任何校验吗?

LinkIT360

PT. LinkIT360 Saturday, June 26, 2021 at 6:12 PM
Ticket #001812 printed by Lin on Saturday, June 26, 2021 at 6:12 PM

用户系统

你们的总结很有想法,让我想起了一本书:《分析模式》-Martin Fowler.整个系统完成下来,基本可以saas了啊,得选个人做销售,- . -

关于用户系统,有点个人的看法。少了验证系统,比如邮箱验证,手机号验证等,还有个绑定xx信息,有个相应的解绑操作,留给用户选择,或许会更好点?

订单结算

对订单优惠结算的部分有点疑惑,结算页与提交订单是两步,那么提交订单时算出的价格与结算页不一致的情况该如何处理?例如有一个满减活动刚好失效之类的,这种情况该如何比较优雅的解决呢?

购物车redis数据类型使用String是好的设计吗?

举个简单的场景,加购一件sku,这时候需要做这几步操作:
1、先根据用户ID,把这个用户购物车全部数据get出来
2、然后在本地内存里,遍历,看是否有对应的skuId
3、有,则把数量+1,然后把全部数据set回去
4、无,则add一个元素,然后把全部数据set回去
时间复杂度O(n) 数据传输量大, 想想如果一个用户购物车加满了,比如200个sku,数据量会很大

另外还要考虑数据版本、看是否要加锁等问题

相反,使用 hash,除了获取购物车详情需要使用 hgetall,在Redis服务端进行操作,时间复杂度O(n)
其他的加购、编辑数量、规格等场景,时间复杂度都是O(1),数据传输量也小
另外相比String,hash数据是结构化的

请教下交易中心得代码设计部分问题,感谢

想请教下交易中心最下面得代码设计:
1 是XXXGateway处理回调,还是XXXProxy处理回调?
2 想确认下设计图上是:发起支付通过XXXProxy进行数据处理传给XXXGateway 请求第三方支付平台,XXXGateway请求返回数据再经过XXXProxy返回上一层是吗

关于金额字段为什么不用decimal类型?

我看看了你那个支付流水表
金额是用2个字段来储存的,为什么不用decimal来储存?
total_fee INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '支付金额,整数方式保存',
scale TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '金额对应的小数位数',
请问这样有什么好处或者问题?

spu->sku

在后端表现是 一个spu必须插入一条sku吗 如果当前spu没有其他属性的情况下 ,还是说如果没有sku就不需要插入sku表

创建 Table 交易扩展表 时候提示 pay_status 不存在,麻烦大大更新一下

-- -----------------------------------------------------
-- Table 交易扩展表
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `pay_transaction_extension` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `transaction_id` VARCHAR(64) NOT NULL COMMENT '系统唯一交易id',
  `pay_method_id` INT UNSIGNED NOT NULL DEFAULT 0,
  `transaction_code` VARCHAR(64) NOT NULL COMMENT '生成传输给第三方的订单号',
  `call_num` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '发起调用的次数',
  `extension_data` TEXT NOT NULL COMMENT '扩展内容,需要保存:transaction_code 与 trade no 的映射关系,异步通知的时候填充',
  `create_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建时间',
  `create_ip` INT UNSIGNED NOT NULL COMMENT '创建ip',
  PRIMARY KEY (`id`),
  INDEX `idx_trads` (`transaction_id`, `pay_status`),
  UNIQUE INDEX `uniq_code` (`transaction_code`)),
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COMMENT = '交易扩展表';

创建表索引的时候 不存在 pay_status 字段,不知道时文档错误,还是写漏了呢

商品模块问题

在商品模块数据库设计中有一个sku库存表 product_sku_stock,但是库存明显是可以合并到sku表 product_sku中,单独见一个表,开销也会很大啊,建它的理由是啥呢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.