社区
MS-SQL Server
帖子详情
电子商务的交易记录,数据库怎么设计?
jishiguang
2011-03-30 10:22:19
是每个会员的交易记录用独立的一张表,还是所有的交易记录共一张表。
若用前者,那要建的表会越来越多,若用后者,会不会数据太大呢?
到底怎样好呢?还是有其他方法?
...全文
968
8
打赏
收藏
电子商务的交易记录,数据库怎么设计?
是每个会员的交易记录用独立的一张表,还是所有的交易记录共一张表。 若用前者,那要建的表会越来越多,若用后者,会不会数据太大呢? 到底怎样好呢?还是有其他方法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
代码兔
2011-03-31
打赏
举报
回复
这里主要说说,我们平时接触到的大多是一些中小型的结算系统,如连锁商场的会员卡储值系统,校园餐卡系统,加油站,网站在线交易等。
1. 数据库设计的原则
1) 准确记录账户基本信息,特别是状态。
2) 交易时要正确记录下交易信息和账户状态。
3) 交易记录是历史性的,不可篡改。
4) 交易是连续的,对时间要求准确。
5) 交易记录要完整,对安全性有要求。
2.主要数据表
1) 账户基本信息表
记录账户的持有人姓名、联络方式、余额、有效期、密码、流通范围等。为了安全,该表还应该由账户、姓名、有效期和余额组成的检验串,防止有人恶意修改余额或账号。
2) 交易记录表
记录每一笔交易信息,除了记录交易账户、交易时间、交易金额、交易后余额和交易内容(充值或消费购物)外,还应该记录下账户的其它基本信息,如账户持有人姓名、交易地点等。这也许会增加数据的存储量,但这是有必要的。如在银行储藏点存下钱,这个储藏点若干年后,可能更名、关闭等,在此之后要查当初在这个点的交易时,就可能会用到初交易时的信息。
另外,交易记录不建立使用太多的代码表示特定意思,一是时间太久了会看不明白代码是什么意思,二是代码可能被重复使用。
所有交易必须有数据完整性校验,即一行记录一旦生成后其校验串也就固定了,防止有人恶意修改记录行的值。
3) 账户变更记录表
由于账户基本信息是可变更的,基于交易系统的交易记录的历史性和档案性,所以对账户基本信息的任何变更都必须有记录,由什么变更为什么,一定要有记录,否则以后一旦查历史,找不到当初变更的信息就麻烦了。
4) 操作日志明细表
所有的操作必须有详细的日志记录。
3.技巧
1) 应当根据应该的规模进行合理设计,如交易量非常大(每天超过10万笔)那就需要考虑创建分区表,如果更大,就要考虑建立历史交易表或交易库,即把一年或几年前的数据独立出来,仅供特殊需要时查询。
2) 建立索引,如按日期、账户建立索引,可以加快查询速度。
3) 建立报表数据存储表,即在报表生成之后,就把生成的结果数据保存下来,以后再要进直接进行查询,不要每次都根据原始表进行统计。
4) 适当提高硬件配置是比较划算的。
4.其它
1) 一定要考虑扩展性,主要在应用地区范围、时间范围、用户(消费者)、客户(商家)方面。
2) 应急的处理,如备份、分布式(不同地方设立数据库)的独立运行、离线等。
3) 要有开放的思想,想想在未来如何方便其它系统、成员、合作伙伴也可以加入进来。
仅个人想法,请多指点。
jishiguang
2011-03-31
打赏
举报
回复
楼上的比较详细,谢了
sleet96
2011-03-30
打赏
举报
回复
[Quote=引用 4 楼 jishiguang 的回复:]
引用 3 楼 sleet96 的回复:
考虑分时表呢?
有点意思,每天做一张表吗?记录保留2个月,共才60张表,不知这样好,还是用一张表好(也只保留2个月的记录)
[/Quote]
根据数据量考虑看是用 每天或者每月或者每季
实际应用中只保留2个月的历史记录大概不可行
jishiguang
2011-03-30
打赏
举报
回复
[Quote=引用 3 楼 sleet96 的回复:]
考虑分时表呢?
[/Quote]
有点意思,每天做一张表吗?记录保留2个月,共才60张表,不知这样好,还是用一张表好(也只保留2个月的记录)
sleet96
2011-03-30
打赏
举报
回复
考虑分时表呢?
王向飞
2011-03-30
打赏
举报
回复
想都不用想 ,第一种肯定不行。
--小F--
2011-03-30
打赏
举报
回复
用一张表 如果数据太多 可以转移到一张历史表中
电子
商务
系统的
设计
与实现:
数据库
设计
用户相关 malling_user:前端商城系统的用户,用户名、密码等 malling_user_delivery_address,用户的收获地址,一个用户可以有多个收获地址 malling_admin_user:后端系统的用户,与前端系统没有关系 malling_admin_role:后端系统用户的角色,超级管理员、管理员等 malling_admin_user_role:后端系统用户和角色的关...
电商平台的
数据库
设计
以下是自己在
电子
商务
系统
设计
中的订单模块的
数据库
设计
经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 订单表 (order) |-- 自动编号(order_id, 自增长主键) |-- 订单单号(order_no, 唯一值,供客户查询) |-- 商店编号(shop_id, 商店表自动编号) |-- 订单状态 (order_status,未付款,已付款,已发货,已签收,退货申请,退货中,已退...
2023年软考中级
电子
商务
设计
师考什么?
所以它的难度就在这里,考生自己去总结相应的解题技巧是比较困难的,下午的考试相对应上午的考试难度会大很多。上午主要考察
电子
商务
基础知识,根据历年的情况来看的话,一般上午题都不会存在问题,总分是75分的题,一共是75个单选题,所以对于上午题来讲,基本上把整个内容体系学习下来之后,上午题都不会存在太多的问题的,虽说里面考的内容比较杂,但是只要有个基本的概念之后,因为在上午题的考试当中它主要是考察的概念性的东西会比较多一些,所以整体来讲上午题还是比较简单的。通过一段时间的知识点习题强化训练,形成更合理的解题思路。
电子
商务
系统的
设计
与实现 十一
数据库
设计
电子
商务
系统的
设计
与实现 十一
数据库
设计
电子
商务
(电销)平台中订单模块(Order)
数据库
设计
明细
电子
商务
(电销)平台中订单模块(Order)
数据库
设计
明细 以下是自己在
电子
商务
系统
设计
中的订单模块的
数据库
设计
经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 订单表 (order) |-- 自动编号(order_id, 自增长主键) |-- 订单单号(order_no, 唯一值,供客户查询) |-- 商店编号(shop_id, 商店表自动编号) |-- 订单状态 (order_status,未付款,已付款,已发货,已签收,退货申请,退货中,已退货,取消
交易
) |-- 商品数量 (produc
MS-SQL Server
34,597
社区成员
254,586
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章