会员管理系统的设计和开发(1)

简介:

我们在很多情况下,可能都是某种组织的会员,如健身、游泳馆、超市、美容店等其他连锁店,这些针对会员的管理和消费管理,从而提供给会员更多的优惠,一般通过积分的方式实现。本文主要从一个开发者的角度,对会员系统进行的设计开发进行剖析,希望能与大家一起探讨,实现更多的思想碰撞。

如果系统是在一个店铺使用的,那么使用单机版本的操作模式即可,如可以使用Winform + SQLite/Access方式,实现数据的访问,并且方便软件复制和备份工作,如果需要性能好一点或者数据更加安全一点,可以采用独立的数据库方式,如采用一个独立的机器部署SqlServer数据库或者Mysql数据库,Oracle数据库就没太大必要了。

如果系统是在一系列连锁店中使用的,那么可以采用Winform+WCF服务方式,实现数据的分布式访问方式,这样数据就不会保存在本地,和B/S通过浏览器的方式很类似,但是Winform客户端能提供更丰富的界面体验效果。当然,我们每一家的连锁店就需要能够上网,随时进行数据的交换处理。

还有一种方式,是离线式的服务,就是弥补第二种方式在断开网络的时候不能工作的缺点,这种方式即使在网络断开,也能照常运营,网络通畅的时候,通过手工进行数据的提交就可以了。由于现在网络一般比较方便,所以这种方式一般采用的不多,只在特殊情况下采用。

1、系统用例的设计

我们知道,会员管理的主要目的就是以会员为中心,实现相关数据的管理。会员管理包括有会员本身的信息管理、会员收费管理、积分管理(积分增减、积分兑换、积分转账)、挂失管理、换卡管理、余额转账、商品管理、消费管理等等,围绕着会员管理展开,通过多个职能操作,实现相关数据的录入和管理。

2、系统数据库设计

数据库的设计,也主要是围绕着会员信息进行的,会员信息是作为所有会员相关记录的外键引用。为了避免数据库表的阅读困难,会员管理的相关表,使用“MS_”前缀声明。

除了以下的表外,还包括了会员的打折设置信息,积分奖励设置,以及用于会员消费的商品信息,及会员消费的记录信息(包括消费主表和明细表记录)。

为了篇幅的介绍,我主要列出会员的主表信息作为讨论参考。

表主要使用字符型的ID作为表的主键,保存的时候,ID自动使用GUID作为数据存储,由于考虑了可能多个连锁店的情况,因此,我们需要增加一个Creator, CreateTime, Editor,EditTime, Dept_ID, Company_ID的通用字段,方便存储用户的相关表记录信息,这样我们在数据过滤以及报表查询的时候,会方便很多。

3、系统模块化设计

当然会员的信息还可以扩展更多,我们一般是以一个通用的会员管理来实现这个模块,从而可以在整个大系统中进行整合和使用。而一般我们都有自己的平台模块积累,在业务层只需要整合现有的一些底层模块作为支持,业务系统我们独立开发即可,大概的构造如下所示。

当然,我们随着系统的开发,我们可能需要整合两个以上的系统(或者底层业务模块)到一个大系统里面,这种要求就需要我们所有的系统模块,都可以通过松耦合、插件化整合的方式实现使用的。

 本文主要介绍一个会员系统开发的整体思路和设计,随着开发的深入,可能会继续分享一些相关的开发心得。

本文转自博客园伍华聪的博客,原文链接:会员管理系统的设计和开发(1),如需转载请自行联系原博主。



目录
相关文章
|
Java Linux Maven
IDEA集成Docker构建SpringBoot镜像上传服务器
IDEA集成Docker构建SpringBoot镜像上传服务器
IDEA集成Docker构建SpringBoot镜像上传服务器
|
存储 缓存 Linux
SMB小传 —— SMB网络文件系统协议介绍
SMB网络文件系统协议, 全名服务器消息块(Server Message Block),曾用名CIFS(通用互联网文件系统 Common Internet File System), 公元1983年诞生于IBM[1],幼年得到英特尔和微软的照料,最终在微软的培养下成长为当今世上网络文件系统协议两极之一的存在。
22384 0
|
数据采集 存储 JSON
Python爬虫面试:requests、BeautifulSoup与Scrapy详解
【4月更文挑战第19天】本文聚焦于Python爬虫面试中的核心库——requests、BeautifulSoup和Scrapy。讲解了它们的常见问题、易错点及应对策略。对于requests,强调了异常处理、代理设置和请求重试;BeautifulSoup部分提到选择器使用、动态内容处理和解析效率优化;而Scrapy则关注项目架构、数据存储和分布式爬虫。通过实例代码,帮助读者深化理解并提升面试表现。
914 0
|
前端开发 JavaScript UED
JavaScript 中的函数防抖与节流详解及实用场景
在前端开发中,处理用户频繁触发的事件,如输入框的输入、按钮点击、窗口调整大小等,常常需要优化性能以减少无效操作。为此,函数防抖(debounce)和函数节流(throttle)是两种常见的性能优化手段。本文将详细介绍两者的区别与实现,并探讨它们的应用场景。
888 1
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第31天】 在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
前端开发 UED 开发者
非常好用的组件库【semi.design】
非常好用的组件库【semi.design】
609 0
基于白鲸优化算法BWO的VMD-KELM光伏发电功率预测(matlab代码+可提供讲解)
基于白鲸优化算法BWO的VMD-KELM光伏发电功率预测(matlab代码+可提供讲解)
|
SQL 运维 监控
如何排查线上问题的?
在当今的互联网时代,线上问题对企业的业务连续性和用户体验产生的影响越来越大。无论是网站崩溃、应用性能下降,还是服务中断,这些问题都可能对企业的声誉和用户满意度造成严重影响。因此,快速、准确地排查并解决线上问题变得至关重要。本文将介绍一些高效的线上问题排查方法,帮助您在面对线上问题时,迅速定位并解决问题。我们将在接下来的内容中详细讨论如何利用日志分析、监控系统、代码审查等手段,以及如何制定有效的应急预案。通过这些策略的实施,您将能够提高线上问题的解决速度,减少对业务的影响,并提高用户满意度。
644 2
|
监控 NoSQL MongoDB
【MongoDB】MongoDB 服务无法正常启动问题排查
【4月更文挑战第2天】【MongoDB】MongoDB 服务无法正常启动问题排查
|
小程序 前端开发 安全
Ruoyi-vue前后端不分离集成微信小程序授权登录思路
Ruoyi-vue前后端不分离集成微信小程序授权登录思路
1586 0