当前位置: 首页 > news >正文

【数据库设计】宠物商店管理系统

目录

🌊1 问题的提出

🌊2 需求分析

🌍2.1 系统目的

🌍2.2 用户需求

🌻2.2.1 我国宠物行业作为新兴市场,潜力巨大

🌻2.2.2 我国宠物产品消费规模逐年增大

🌻2.2.3 我国宠物主选择高端产品和服务的意愿日渐显著

🌍2.3 数据流图

🌻2.3.1 第一级数据流图:

🌻2.3.2 第二级数据流图:

🌻2.3.3 第三级数据流图:

🌍2.4 数据字典

🌻2.4.1 表格清单

🌻2.4.2 参考清单

🌻2.4.3 表格宠物信息的输出参考清单

🌻2.4.4 表格宠物信息的列清单

🌻2.4.5 表格宠物信息的索引清单

🌻2.4.6 表格宠物信息的键清单

🌊3 数据库三个设计步骤

🌍3.1 概念设计

🌍3.2 逻辑设计

🌍3.3 物理设计

🌊4 数据库和其他数据库对象的实现

🌍4.1 表

🌍4.2 视图

🌍4.3 数据库关系图

🌍4.4 索引

🌍4.5 存储过程

🌍4.6 函数

🌊5 测试与运行实例

🌊结论

🌊参考文献

🌊附录  TSQL语句


🌊1 问题的提出

随着中国经济的增长,宠物行业得到了迅猛的发展,人们饲养宠物已经由单纯的赏玩而转变成人们精神的一种寄托,宠物的角色也悄然发生着变化,已经日益成为人们生活的伴侣,在促进和谐社会发挥着不可替代的调节作用,越来越多的人开始养宠物,其中以猫狗为主。由于市场的无序竞争,法制观念淡,数量大但精品少,管理不规范加上缺少相关法律法规和行业标准的监管和约束,导致当前我国宠物用品竞争无序,尚未形成高水平的专业大市场,严重的影响了宠物用品行业的健康发展。同时,宠物用品网购企业受销售规模所限,渠道谈判力量较弱,货源大多被品牌渠道商控制。而渠道供应商方面可能存在掺杂假货等不规范操作,容易造成产品质量问题,这会对消费者权益造成一定损害,也对网购企业的品牌有所不利。而我国目前没有网络购物的法律规范,消费者维权时常遭遇无法可依的尴尬。而无良商家也经常利用法律法规的漏洞,制定霸王条款,侵犯消费者权益。

宠物商店管理系统是基于大多数宠物主囿于宠物商店市场不规范的现状进行的一次改造探索与创新。该系统集“宠物商店”与“其他促进宠物健康的增值服务”(如预约服务、宠物选择、宠物商品的售卖等)于一体。在保障上:针对顾客体验宠物商店过程中的不规范以及责任纠纷问题,为用户提供了可供参考的宠物商店服务(平台提供了不同的宠物类别,用户可根据自己需求选择性购买);在渠道上:扮演宠物商店的中介角色,提供线上新渠道,不仅能够帮助宠物主减少宠物商店忧虑、为自己找到合适的宠物以及相应的宠物服务,还通过增值服务抓住了与此相关前后的宠物服务市场,在此基础上宠物商店管理系统应运而生。


🌊2 需求分析

🌍2.1 系统目的

本宠物商店管理系统从致力从宠物商店的视角出发,提供规范化的宠物商店服务。宠物商店管理系统聚焦于一、二线城市的中青年群体的宠物商店诉求,为青年选择宠物、帮助宠物主降低忧虑、对规范宠物相亲市场具有极大的推动意义。宠物商店市场开发潜力巨大,如果对宠物商店市场进行有效开发和运营,可以有效推动经济增长和解决就业问题,为宠物行业不规范的问题提供可借鉴的解决办法。


🌍2.2 用户需求

🌻2.2.1 我国宠物行业作为新兴市场,潜力巨大

随着社会的发展,在物质生活极大丰富的同时,人们对于精神生活的追求也到了一定的高度。一方面,人们越来越注重培养生活情趣和追求个性化体验,另一方面,传统家庭结构的改变和工作压力的增大,使越来越多的人将感情投注于宠物身上,宠物行业由此逐渐发展起来。根据《2020年中国宠物行业白皮书》显示,我国宠物数量及养宠人数持续增长,2020年中国犬、猫数量已突破1亿只,养犬猫人数达到6294万人,增幅为2.80%。2020年我国宠物经济规模已经接近3000亿元,并在未来三年保持约14.20%的年复合增长率。


🌻2.2.2 我国宠物产品消费规模逐年增大

在生活节奏越来越快的当下,人与人之间交流变少带来的孤独感,导致越来越多人视宠物为自己最亲密的伙伴。有超九成的宠物主表示视宠物为家人、朋友甚至伴侣,宠物家庭属性进一步加强。


🌻2.2.3 我国宠物主选择高端产品和服务的意愿日渐显著

从消费结构来看,食品市场份额降低,服务市场份额增加。而且在2020年宠物诊疗支出达334.53亿元,同比增长65.30%,这项消费支出增长最快。由此可见,人们对宠物更高品质服务的需求在逐渐增加。

宠物的家庭地位日渐攀升,宠物主为爱宠花钱的意愿愈发强烈,宠物消费领域将迎来整体升级。宠物主人收入水平和消费能力的提升,宠物主人在宠物身上的投入也在持续增加。《2019年中国宠物行业白皮书》显示,2019年中国城镇宠物犬猫消费市场规模已达到2024亿元,比2018年增长18.5%。其中宠物犬消费市场规模为1244亿元,比2018年增长17.8%;宠物猫消费市场规模为780亿元,增幅达19.6%,超过犬消费市场规模增速。宠物行业仍是目前少有的市场规模庞大,且维持高速增长的潜力行业。

根据《2020年宠物行业白皮书》公布的数据显示,2020年我国宠物(猫狗)消费市场规模达2065亿元,同比增长2.00%,其中宠物狗消费市场规模为1180亿元,较2019年下降5.10%,宠物猫消费市场规模为884亿元,同比增长13.30%

从宠物客单价不同价格段的消费人数分布来看,高消费人群占比约20.00%,且高价格段的消费人数增速突出,这足以说明,随着宠物家庭地位的攀升,主人们相较过去更愿为宠物一掷千金,宠物行业高端化产品和服务的前景巨大。

宠物消费的“恩格尔系数”在降低。《2021年中国宠物行业白皮书》显示,从2019年到2021年,食品的市场份额从61.40%降低到51.50%,下降接近10个百分点。医疗的市场份额从19.00%到29.20%,增加了10个百分点。从消费结构来看,食品市场份额降低,服务市场份额增加。而且从更细分的市场来看,诊疗市场的份额达到14.60%,成为仅次于主粮的第二大细分市场。而且在2020年宠物诊疗支出达334.53亿元,同比增长65.30%,这项消费支出增长最快。由此可见,人们对宠物更高品质服务的需求在逐渐增加。


🌍2.3 数据流图

数据流图这块一共分为三级,第一级在全局层面表明顾客、宠物商店管理系统以及销售员三者之间的联系;第二级将宠物商店管理系统细分为预约、进店两块,将预约记录、商品信息、宠物信息、预期消费记录、选择结果、收费标准以及交易记录与预约和进店进行信息交互;第三级分别是预约和进店的细分,具体流程见以下数据流图。

🌻2.3.1 第一级数据流图:


🌻2.3.2 第二级数据流图:


🌻2.3.3 第三级数据流图:

第三级数据流图之预约块:

第三级数据流图之进店块:


🌍2.4 数据字典

由于Power Designer针对物理模型导出的数据字典较多,这里主要选其中的主要清单与卡片进行展示。


🌻2.4.1 表格清单

名称

代码

交易记录

交易记录

发票

发票

宠物信息

宠物信息

宠物用品

宠物用品

收费标准

收费标准

营销部

营销部

选择结果

选择结果

销售员

销售员

顾客

顾客

预约单

预约单


🌻2.4.2 参考清单

名称

代码

父表格

子表格

外键列

父角色

子角色

了解

了解

顾客

宠物信息

顾客号; 预约号

做出

做出

选择结果

顾客

商品号; 选择结_顾客号

包含

包含

发票

宠物信息

发票号

包括

包括

发票

宠物用品

发票号

参照

参照

收费标准

交易记录

商品号; 单价

参考

参考

收费标准

预约单

商品号; 单价

反馈

反馈

销售员

选择结果

销售员号

填写

填写

销售员

发票

销售员_销售员号

属于

属于

营销部

销售员

销售部号

持有

持有

顾客

预约单

顾客_顾客号; 顾客_预约号

接受

接受

销售员

预约单

销售员_销售员号

提供

提供

销售员

宠物信息

销售员号

查看

查看

顾客

宠物用品

顾客号; 预约号

申请

申请2

发票

顾客

发票号

申请

申请

顾客

发票

顾客_顾客号; 预约号

给出

给出

销售员

宠物用品

销售员号

缴费

缴费2

交易记录

发票

交易号

缴费

缴费

发票

交易记录

发票号


🌻2.4.3 表格宠物信息的输出参考清单

名称

代码

父表格

外键列

父角色

子角色

了解

了解

顾客

顾客号; 预约号

包含

包含

发票

发票号

提供

提供

销售员

销售员号


🌻2.4.4 表格宠物信息的列清单

名称

代码

数据类型

长度

主要的

宠物号

宠物号

varchar(20)

20

TRUE

销售员号

销售员号

varchar(10)

10

FALSE

顾客号

顾客号

varchar(10)

10

FALSE

预约号

预约号

varchar(20)

20

FALSE

发票号

发票号

varchar(10)

10

FALSE

宠物姓名

宠物姓名

varchar(20)

20

FALSE

宠物品种

宠物品种

varchar(20)

20

FALSE

宠物出生日期

宠物出生日期

datetime

FALSE

宠物价格

宠物价格

real

FALSE

宠物健康状态

宠物健康状态

varchar(10)

10

FALSE


🌻2.4.5 表格宠物信息的索引清单

名称

代码

唯一的

群集器

主要的

外键

候选键

表格

宠物信息_PK

宠物信息_PK

TRUE

FALSE

TRUE

FALSE

FALSE

宠物信息

了解_FK

了解_FK

FALSE

FALSE

FALSE

TRUE

FALSE

宠物信息

提供_FK

提供_FK

FALSE

FALSE

FALSE

TRUE

FALSE

宠物信息

包含_FK

包含_FK

FALSE

FALSE

FALSE

TRUE

FALSE

宠物信息


🌻2.4.6 表格宠物信息的键清单

名称

代码

主要的

Identifier_1

Identifier_1

TRUE


🌊3 数据库三个设计步骤

🌍3.1 概念设计

将需求分析阶段所得到的应用需求抽象为信息世界的结构,真实、充分地反映现实世界,这里主要采用Power Designer建立概念模型CDM文件生成的概念模型图进行现实世界概念模型的描述,包括实体、属性、实体之间的联系等,以下给定的是总概念模型,并且运用表格法对以下关系数据库中的关系进行模式分解,使其关系模式达到三范式。


🌍3.2 逻辑设计

将概念结构设计阶段的概念模型图转变为PDM文件生成的物理模型图,具体信息如下。


🌍3.3 物理设计

本次设计采用SQL SERVER的默认物理设计。


🌊4 数据库和其他数据库对象的实现

🌍4.1 表

采用SQL SERVER建立“宠物商店管理系统”数据库,其中表有宠物信息、宠物用品、发票、顾客、销售员、营销部、交易记录、收费标准、选择结果、预约单十张表。


🌍4.2 视图


🌍4.3 数据库关系图


🌍4.4 索引


🌍4.5 存储过程


🌍​​​​​​​4.6 函数


🌊5 测试与运行实例

在宠物商店管理系统的基础上,以微信小程序的方式建立起“宠伴驿站”的线上宠物购物平台,其中页面主要有以下,主要分为相亲角、分类、社区、购物车以及个人页面:

宠物主可以在“相亲角”板块为自己宠物寻找相亲对象,“相亲角”将会显示发布了“征婚信息”的宠物相关介绍,宠物主可以自主选择;也可以在页面上方的搜索栏直接输入心仪的相亲品种或宠物星级。

“相亲角”页面:

“宠物商品分类”页面:

“商品详情”页面:

“社区”页面:

“购物车”页面:

我的”页面:

“意见反馈”页面:


🌊结论

本次宠物商店管理系统的概念设计、逻辑设计以及物理设计主要建立在Power Designer数据库设计工具和SQL Server数据库管理系统,使用数据库设计工具绘制数据流图,建立概念模型和物理模型,最终生成数据库和表及其他数据库对象,建立起合理高性能的数据库系统,并且运用微信开发者工具与vscode相结合的开发方式对宠物商店管理系统进行外观设计和功能设计,实现基本功能的同时满足用户的良好体验。尽管设计过程中不断会冒出大大小小的问题,但我始终坚信虚壹而静,静心而行,每解决一个问题,我都会像个孩子般高兴的手舞足蹈,正是在这段埋头苦干时常熬夜的日子里,我也在不断的成长着。


🌊参考文献

1  王珊.数据仓库技术与联机分析处理.数据库技术丛书之一.[A]北京:科学出版社,1998.

2  萨师煊.数据库系统概论(第五版).[A]北京:高等教育出版社,2014(5):215-218.

中国畜牧业协会宠物产业分会.2019年中国宠物行业白皮书(2019年)[R].(2019-01).

4  中国畜牧业协会宠物产业分会.2020年中国宠物行业白皮书(2020年)[R].(2020-01).

5  中国畜牧业协会宠物产业分会.2021年中国宠物行业白皮书(2021年)[R].(2021-01).


🌊附录  TSQL语句

Tsql语句如下:

/*==============================================================*//* DBMS name:      Microsoft SQL Server 2008                    *//* Created on:     2022/5/23 14:09:27                           *//*==============================================================*/if exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('交易记录') and o.name = 'FK_交易记录_参照_收费标准')alter table 交易记录drop constraint FK_交易记录_参照_收费标准goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('交易记录') and o.name = 'FK_交易记录_缴费_发票')alter table 交易记录drop constraint FK_交易记录_缴费_发票goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('发票') and o.name = 'FK_发票_填写_销售员')alter table 发票drop constraint FK_发票_填写_销售员goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('发票') and o.name = 'FK_发票_申请_顾客')alter table 发票drop constraint FK_发票_申请_顾客goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('发票') and o.name = 'FK_发票_缴费2_交易记录')alter table 发票drop constraint FK_发票_缴费2_交易记录goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('宠物信息') and o.name = 'FK_宠物信息_了解_顾客')alter table 宠物信息drop constraint FK_宠物信息_了解_顾客goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('宠物信息') and o.name = 'FK_宠物信息_包含_发票')alter table 宠物信息drop constraint FK_宠物信息_包含_发票goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('宠物信息') and o.name = 'FK_宠物信息_提供_销售员')alter table 宠物信息drop constraint FK_宠物信息_提供_销售员goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('宠物用品') and o.name = 'FK_宠物用品_包括_发票')alter table 宠物用品drop constraint FK_宠物用品_包括_发票goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('宠物用品') and o.name = 'FK_宠物用品_查看_顾客')alter table 宠物用品drop constraint FK_宠物用品_查看_顾客goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('宠物用品') and o.name = 'FK_宠物用品_给出_销售员')alter table 宠物用品drop constraint FK_宠物用品_给出_销售员goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('选择结果') and o.name = 'FK_选择结果_反馈_销售员')alter table 选择结果drop constraint FK_选择结果_反馈_销售员goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('销售员') and o.name = 'FK_销售员_属于_营销部')alter table 销售员drop constraint FK_销售员_属于_营销部goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('顾客') and o.name = 'FK_顾客_做出_选择结果')alter table 顾客drop constraint FK_顾客_做出_选择结果goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('顾客') and o.name = 'FK_顾客_申请2_发票')alter table 顾客drop constraint FK_顾客_申请2_发票goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('预约单') and o.name = 'FK_预约单_参考_收费标准')alter table 预约单drop constraint FK_预约单_参考_收费标准goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('预约单') and o.name = 'FK_预约单_持有_顾客')alter table 预约单drop constraint FK_预约单_持有_顾客goif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('预约单') and o.name = 'FK_预约单_接受_销售员')alter table 预约单drop constraint FK_预约单_接受_销售员goif exists (select 1from  sysindexeswhere  id    = object_id('交易记录')and   name  = '缴费_FK'and   indid > 0and   indid < 255)drop index 交易记录.缴费_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('交易记录')and   name  = '参照_FK'and   indid > 0and   indid < 255)drop index 交易记录.参照_FKgoif exists (select 1from  sysobjectswhere  id = object_id('交易记录')and   type = 'U')drop table 交易记录goif exists (select 1from  sysindexeswhere  id    = object_id('发票')and   name  = '缴费2_FK'and   indid > 0and   indid < 255)drop index 发票.缴费2_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('发票')and   name  = '申请_FK'and   indid > 0and   indid < 255)drop index 发票.申请_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('发票')and   name  = '填写_FK'and   indid > 0and   indid < 255)drop index 发票.填写_FKgoif exists (select 1from  sysobjectswhere  id = object_id('发票')and   type = 'U')drop table 发票goif exists (select 1from  sysindexeswhere  id    = object_id('宠物信息')and   name  = '包含_FK'and   indid > 0and   indid < 255)drop index 宠物信息.包含_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('宠物信息')and   name  = '提供_FK'and   indid > 0and   indid < 255)drop index 宠物信息.提供_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('宠物信息')and   name  = '了解_FK'and   indid > 0and   indid < 255)drop index 宠物信息.了解_FKgoif exists (select 1from  sysobjectswhere  id = object_id('宠物信息')and   type = 'U')drop table 宠物信息goif exists (select 1from  sysindexeswhere  id    = object_id('宠物用品')and   name  = '包括_FK'and   indid > 0and   indid < 255)drop index 宠物用品.包括_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('宠物用品')and   name  = '查看_FK'and   indid > 0and   indid < 255)drop index 宠物用品.查看_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('宠物用品')and   name  = '给出_FK'and   indid > 0and   indid < 255)drop index 宠物用品.给出_FKgoif exists (select 1from  sysobjectswhere  id = object_id('宠物用品')and   type = 'U')drop table 宠物用品goif exists (select 1from  sysobjectswhere  id = object_id('收费标准')and   type = 'U')drop table 收费标准goif exists (select 1from  sysobjectswhere  id = object_id('营销部')and   type = 'U')drop table 营销部goif exists (select 1from  sysindexeswhere  id    = object_id('选择结果')and   name  = '反馈_FK'and   indid > 0and   indid < 255)drop index 选择结果.反馈_FKgoif exists (select 1from  sysobjectswhere  id = object_id('选择结果')and   type = 'U')drop table 选择结果goif exists (select 1from  sysindexeswhere  id    = object_id('销售员')and   name  = '属于_FK'and   indid > 0and   indid < 255)drop index 销售员.属于_FKgoif exists (select 1from  sysobjectswhere  id = object_id('销售员')and   type = 'U')drop table 销售员goif exists (select 1from  sysindexeswhere  id    = object_id('顾客')and   name  = '申请2_FK'and   indid > 0and   indid < 255)drop index 顾客.申请2_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('顾客')and   name  = '做出_FK'and   indid > 0and   indid < 255)drop index 顾客.做出_FKgoif exists (select 1from  sysobjectswhere  id = object_id('顾客')and   type = 'U')drop table 顾客goif exists (select 1from  sysindexeswhere  id    = object_id('预约单')and   name  = '持有_FK'and   indid > 0and   indid < 255)drop index 预约单.持有_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('预约单')and   name  = '接受_FK'and   indid > 0and   indid < 255)drop index 预约单.接受_FKgoif exists (select 1from  sysindexeswhere  id    = object_id('预约单')and   name  = '参考_FK'and   indid > 0and   indid < 255)drop index 预约单.参考_FKgoif exists (select 1from  sysobjectswhere  id = object_id('预约单')and   type = 'U')drop table 预约单go/*==============================================================*//* Table: 交易记录                                                  *//*==============================================================*/create table 交易记录 (交易号                  varchar(10)          not null,商品号                  varchar(10)          null,单价                   real                 null,发票号                  varchar(10)          null,交易金额                 real                 null,顾客号                  varchar(10)          null,销售员号                 varchar(10)          null,交易日期                 datetime             null,constraint PK_交易记录 primary key nonclustered (交易号))go/*==============================================================*//* Index: 参照_FK                                                 *//*==============================================================*/create index 参照_FK on 交易记录 (商品号 ASC,单价 ASC)go/*==============================================================*//* Index: 缴费_FK                                                 *//*==============================================================*/create index 缴费_FK on 交易记录 (发票号 ASC)go/*==============================================================*//* Table: 发票                                                    *//*==============================================================*/create table 发票 (发票号                  varchar(10)          not null,顾客_顾客号               varchar(10)          null,预约号                  varchar(20)          null,交易号                  varchar(10)          null,销售员_销售员号             varchar(10)          null,顾客号                  varchar(10)          null,数量                   int                  null,单价                   real                 null,日期                   datetime             null,商品名称                 varchar(10)          null,票头                   varchar(10)          null,销售员号                 varchar(10)          null,顾客名称                 varchar(10)          null,缴费金额                 real                 null,constraint PK_发票 primary key nonclustered (发票号))go/*==============================================================*//* Index: 填写_FK                                                 *//*==============================================================*/create index 填写_FK on 发票 (销售员_销售员号 ASC)go/*==============================================================*//* Index: 申请_FK                                                 *//*==============================================================*/create index 申请_FK on 发票 (顾客_顾客号 ASC,预约号 ASC)go/*==============================================================*//* Index: 缴费2_FK                                                *//*==============================================================*/create index 缴费2_FK on 发票 (交易号 ASC)go/*==============================================================*//* Table: 宠物信息                                                  *//*==============================================================*/create table 宠物信息 (宠物号                  varchar(20)          not null,销售员号                 varchar(10)          null,顾客号                  varchar(10)          null,预约号                  varchar(20)          null,发票号                  varchar(10)          null,宠物姓名                 varchar(20)          null,宠物品种                 varchar(20)          null,宠物出生日期               datetime             null,宠物价格                 real                 null,宠物健康状态               varchar(10)          null,constraint PK_宠物信息 primary key nonclustered (宠物号))go/*==============================================================*//* Index: 了解_FK                                                 *//*==============================================================*/create index 了解_FK on 宠物信息 (顾客号 ASC,预约号 ASC)go/*==============================================================*//* Index: 提供_FK                                                 *//*==============================================================*/create index 提供_FK on 宠物信息 (销售员号 ASC)go/*==============================================================*//* Index: 包含_FK                                                 *//*==============================================================*/create index 包含_FK on 宠物信息 (发票号 ASC)go/*==============================================================*//* Table: 宠物用品                                                  *//*==============================================================*/create table 宠物用品 (商品号                  varchar(10)          not null,销售员号                 varchar(10)          null,发票号                  varchar(10)          null,顾客号                  varchar(10)          null,预约号                  varchar(20)          null,单价                   real                 null,会员价                  real                 null,是否限购                 smallint             null,constraint PK_宠物用品 primary key nonclustered (商品号))go/*==============================================================*//* Index: 给出_FK                                                 *//*==============================================================*/create index 给出_FK on 宠物用品 (销售员号 ASC)go/*==============================================================*//* Index: 查看_FK                                                 *//*==============================================================*/create index 查看_FK on 宠物用品 (顾客号 ASC,预约号 ASC)go/*==============================================================*//* Index: 包括_FK                                                 *//*==============================================================*/create index 包括_FK on 宠物用品 (发票号 ASC)go/*==============================================================*//* Table: 收费标准                                                  *//*==============================================================*/create table 收费标准 (商品号                  varchar(10)          not null,单价                   real                 not null,会员价                  real                 null,是否限购                 smallint             null,折扣日期                 datetime             null,constraint PK_收费标准 primary key nonclustered (商品号, 单价))go/*==============================================================*//* Table: 营销部                                                   *//*==============================================================*/create table 营销部 (销售部号                 varchar(10)          not null,销售主管号                varchar(10)          null,销售主管名                varchar(10)          null,销售主管性别               varchar(2)           null,销售主管年龄               int                  null,销售部人数                int                  null,销售月季总金额              real                 null,销售季总金额               real                 null,销售年总金额               real                 null,constraint PK_营销部 primary key nonclustered (销售部号))go/*==============================================================*//* Table: 选择结果                                                  *//*==============================================================*/create table 选择结果 (商品号                  varchar(10)          not null,顾客号                  varchar(10)          not null,销售员号                 varchar(10)          null,商品名称                 varchar(10)          null,选择日期                 datetime             null,总价                   real                 null,constraint PK_选择结果 primary key nonclustered (商品号, 顾客号))go/*==============================================================*//* Index: 反馈_FK                                                 *//*==============================================================*/create index 反馈_FK on 选择结果 (销售员号 ASC)go/*==============================================================*//* Table: 销售员                                                   *//*==============================================================*/create table 销售员 (销售员号                 varchar(10)          not null,销售部号                 varchar(10)          null,销售员姓名                varchar(10)          null,销售员性别                varchar(2)           null,销售员工龄                smallint             null,constraint PK_销售员 primary key nonclustered (销售员号))go/*==============================================================*//* Index: 属于_FK                                                 *//*==============================================================*/create index 属于_FK on 销售员 (销售部号 ASC)go/*==============================================================*//* Table: 顾客                                                    *//*==============================================================*/create table 顾客 (预约号                  varchar(20)          not null,顾客号                  varchar(10)          not null,发票号                  varchar(10)          null,商品号                  varchar(10)          null,选择结_顾客号              varchar(10)          null,顾客姓名                 varchar(20)          null,性别                   varchar(2)           null,顾客选择                 varchar(10)          null,会员                   smallint             null,顾客预算                 real                 null,constraint PK_顾客 primary key nonclustered (顾客号, 预约号))go/*==============================================================*//* Index: 做出_FK                                                 *//*==============================================================*/create index 做出_FK on 顾客 (商品号 ASC,选择结_顾客号 ASC)go/*==============================================================*//* Index: 申请2_FK                                                *//*==============================================================*/create index 申请2_FK on 顾客 (发票号 ASC)go/*==============================================================*//* Table: 预约单                                                   *//*==============================================================*/create table 预约单 (预约号                  varchar(10)          not null,商品号                  varchar(10)          null,单价                   real                 null,顾客_顾客号               varchar(10)          null,顾客_预约号               varchar(20)          null,销售员_销售员号             varchar(10)          null,顾客号                  varchar(10)          null,销售员号                 varchar(10)          null,预约日期                 datetime             null,顾客预算                 real                 null,顾客选择                 varchar(10)          null,是否会员                 smallint             null,顾客姓名                 varchar(10)          null,销售员姓名                varchar(10)          null,constraint PK_预约单 primary key nonclustered (预约号))go/*==============================================================*//* Index: 参考_FK                                                 *//*==============================================================*/create index 参考_FK on 预约单 (商品号 ASC,单价 ASC)go/*==============================================================*//* Index: 接受_FK                                                 *//*==============================================================*/create index 接受_FK on 预约单 (销售员_销售员号 ASC)go/*==============================================================*//* Index: 持有_FK                                                 *//*==============================================================*/create index 持有_FK on 预约单 (顾客_顾客号 ASC,顾客_预约号 ASC)Goalter table 交易记录add constraint FK_交易记录_参照_收费标准 foreign key (商品号, 单价)references 收费标准 (商品号, 单价)goalter table 交易记录add constraint FK_交易记录_缴费_发票 foreign key (发票号)references 发票 (发票号)goalter table 发票add constraint FK_发票_填写_销售员 foreign key (销售员_销售员号)references 销售员 (销售员号)goalter table 发票add constraint FK_发票_申请_顾客 foreign key (顾客_顾客号, 预约号)references 顾客 (顾客号, 预约号)goalter table 发票add constraint FK_发票_缴费2_交易记录 foreign key (交易号)references 交易记录 (交易号)goalter table 宠物信息add constraint FK_宠物信息_了解_顾客 foreign key (顾客号, 预约号)references 顾客 (顾客号, 预约号)goalter table 宠物信息add constraint FK_宠物信息_包含_发票 foreign key (发票号)references 发票 (发票号)goalter table 宠物信息add constraint FK_宠物信息_提供_销售员 foreign key (销售员号)references 销售员 (销售员号)goalter table 宠物用品add constraint FK_宠物用品_包括_发票 foreign key (发票号)references 发票 (发票号)goalter table 宠物用品add constraint FK_宠物用品_查看_顾客 foreign key (顾客号, 预约号)references 顾客 (顾客号, 预约号)goalter table 宠物用品add constraint FK_宠物用品_给出_销售员 foreign key (销售员号)references 销售员 (销售员号)goalter table 选择结果add constraint FK_选择结果_反馈_销售员 foreign key (销售员号)references 销售员 (销售员号)goalter table 销售员add constraint FK_销售员_属于_营销部 foreign key (销售部号)references 营销部 (销售部号)goalter table 顾客add constraint FK_顾客_做出_选择结果 foreign key (商品号, 选择结_顾客号)references 选择结果 (商品号, 顾客号)goalter table 顾客add constraint FK_顾客_申请2_发票 foreign key (发票号)references 发票 (发票号)goalter table 预约单add constraint FK_预约单_参考_收费标准 foreign key (商品号, 单价)references 收费标准 (商品号, 单价)goalter table 预约单add constraint FK_预约单_持有_顾客 foreign key (顾客_顾客号, 顾客_预约号)references 顾客 (顾客号, 预约号)goalter table 预约单add constraint FK_预约单_接受_销售员 foreign key (销售员_销售员号)references 销售员 (销售员号)go

相关文章:

【数据库设计】宠物商店管理系统

目录 &#x1f30a;1 问题的提出 &#x1f30a;2 需求分析 &#x1f30d;2.1 系统目的 &#x1f30d;2.2 用户需求 &#x1f33b;2.2.1 我国宠物行业作为新兴市场&#xff0c;潜力巨大 &#x1f33b;2.2.2 我国宠物产品消费规模逐年增大 &#x1f33b;2.2.3 我国宠物主选…...

前端 JS 经典:node 的模块查找策略

前言&#xff1a;我们引入模块后&#xff0c;node 大概的查找步骤分为 文件查找、文件夹查找、内置模块查找、第三方模块查找&#xff0c;在 node 中使用 ESM 模块语法&#xff0c;需要创建 package.json 文件&#xff0c;并将 type 设置为 module。简单起见&#xff0c;我们用…...

C++中的23种设计模式

目录 摘要 创建型模式 1. 工厂方法模式&#xff08;Factory Method Pattern&#xff09; 2. 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09; 3. 单例模式&#xff08;Singleton Pattern&#xff09; 4. 生成器模式&#xff08;Builder Pattern&#xff0…...

vue.js+node.js+mysql在线聊天室源码

vue.jsnode.jsmysql在线聊天室源码 技术栈&#xff1a;vue.jsElement UInode.jssocket.iomysql vue.jsnode.jsmysql在线聊天室源码...

浏览器无痕模式和非无痕模式的区别

无痕模式 1. 历史记录&#xff1a;在无痕模式下&#xff0c;浏览器不会保存浏览记录、下载记录、表单数据和Cookies。当你关闭无痕窗口后&#xff0c;这些信息都会被删除。
 2. Cookies&#xff1a;无痕模式会在会话期间临时存储Cookies&#xff0c;但在关闭无痕窗口…...

WPF框架,修改ComboBox控件背景色 ,为何如此困难?

直接修改Background属性不可行 修改控件背景颜色&#xff0c;很多人第一反应便是修改Background属性&#xff0c;但是修改过后便会发现&#xff0c;控件的颜色没有发生任何变化。 于是在网上搜索答案&#xff0c;便会发现一个异常尴尬的情况&#xff0c;要么就行代码简单但是并…...

Diffusers代码学习: 文本引导深度图像生成

StableDiffusionDepth2ImgPipeline允许传递文本提示和初始图像&#xff0c;以调节新图像的生成。此外&#xff0c;还可以传递depth_map以保留图像结构。如果没有提供depth_map&#xff0c;则管道通过集成的深度估计模型自动预测深度。 # 以下代码为程序运行进行设置 import o…...

网络的下一次迭代:AVS 将为 Web2 带去 Web3 的信任机制

撰文&#xff1a;Sumanth Neppalli&#xff0c;Polygon Ventures 编译&#xff1a;Yangz&#xff0c;Techub News 本文来源香港Web3媒体&#xff1a;Techub News AVS &#xff08;主动验证服务&#xff09;将 Web2 的规模与 Web3 的信任机制相融合&#xff0c;开启了网络的下…...

OpenCV 的模板匹配

OpenCV中的模板匹配 模板匹配&#xff08;Template Matching&#xff09;是计算机视觉中的一种技术&#xff0c;用于在大图像中找到与小图像&#xff08;模板&#xff09;相匹配的部分。OpenCV提供了多种模板匹配的方法&#xff0c;主要包括基于相关性和基于平方差的匹配方法。…...

26.0 Http协议

1. http协议简介 HTTP(Hypertext Transfer Protocol, 超文本传输协议): 是万维网(WWW: World Wide Web)中用于在服务器与客户端(通常是本地浏览器)之间传输超文本的协议.作为一个应用层的协议, HTTP以其简洁, 高效的特点, 在分布式超媒体信息系统中扮演着核心角色. 自1990年提…...

IO流打印流

打印流 IO流打印流是Java中用来将数据打印到输出流的工具。打印流提供了方便的方法来格式化和输出数据&#xff0c;可以用于将数据输出到控制台、文件或网络连接。 分类:打印流一般是指:PrintStream&#xff0c;PrintWriter两个类 特点1:打印流只操作文件目的地&#xff0c;…...

Cohere reranker 一致的排序器

这本notebook展示了如何在检索器中使用 Cohere 的重排端点。这是在 ContextualCompressionRetriever 的想法基础上构建的。 %pip install --upgrade --quiet cohere %pip install --upgrade --quiet faiss# OR (depending on Python version)%pip install --upgrade --quiet…...

MySQL系列-语法说明以及基本操作(二)

1、MySQL数据表的约束 1.1、MySQL主键 “主键&#xff08;PRIMARY KEY&#xff09;”的完整称呼是“主键约束”。 MySQL 主键约束是一个列或者列的组合&#xff0c;其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键&#xff0c;通过它可以强制表的实体完整性。 …...

【STM32】步进电机及其驱动

设计和实现基于STM32微控制器的步进电机驱动系统是一个涉及硬件设计、固件编程和电机控制算法的复杂任务。以下是一个概要设计&#xff0c;包括一些基本的代码示例。 1. 硬件设计 1.1 微控制器选择 选择STM32系列微控制器&#xff0c;因为它提供了丰富的GPIO端口和足够的处理…...

Excel自定义排序和求和

概览 excel作为办公的常备工具&#xff0c;好记性不如烂笔头&#xff0c;在此梳理记录下&#xff0c;此篇文章主要是记录excel的自定义排序和求和 一. 自定义排序 举个例子 1. 填充自定义排序选项 实现步骤&#xff1a; 选定目标排序值&#xff1b;文件->选项->自定…...

若依RuoYi-Vue分离版—免登录直接访问

若依RuoYi-Vue分离版—免登录直接访问 如何不登录直接访问前端&#xff1a;后端:方法1&#xff1a;在SecurityConfig.java中设置httpSecurity配置匿名访问方法2&#xff1a;在对应的方法或类上面使用Anonymous注解。 如何不登录直接访问 官网有说明&#xff1a;如何不登录直接…...

java基础知识漏洞记录一

下面是我在阅读JavaGuide面试资料时遇到的不熟悉的知识点总结 JDK9中JRE与JDK新关系 从 JDK 9 开始&#xff0c;就不需要区分 JDK 和 JRE 的关系了&#xff0c;取而代之的是模块系统&#xff08;JDK 被重新组织成 94 个模块&#xff09; jlink 工具 (随 Java 9 一起发布的新命…...

html的网页制作代码分享

<!-- prj_8_2.html --> <!DOCTYPE html> <html lang "EN"><head><meta charset"utf-8" /><title>页面布局设计</title><style type "text/css">*{padding: 0px;margin:0px;}#header{back…...

【PIXEL】2024年 Pixel 解除 4G限制

首先在谷歌商店下载 Shizuku 和 pixel IMS 两个app 然后打开shizuku &#xff0c;按照它的方法启动 推荐用adb 启动&#xff08; 电脑连手机 &#xff0c;使用Qtscrcpy最简洁&#xff09; 一条指令解决 shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.ap…...

C#、C++、Java、Python 选择哪个好?

选择哪种编程语言取决于你的需求和偏好&#xff0c;以及你打算做什么类型的项目。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频 讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信22&#xff0c;我…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

链式法则中 复合函数的推导路径 多变量“信息传递路径”

非常好&#xff0c;我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题&#xff0c;统一使用 二重复合函数&#xff1a; z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y))​ 来全面说明。我们会展示其全微分形式&#xff08;偏导…...