旅游业数据库
Ⅰ 做简单旅游网站,数据库需要哪些表,字段 只需要将行程线路添加到数据库 可以查看就行的
这个问题不能问别人的,关键是看你要保存哪些数据,要保存哪些数据要看你有哪些功能。所以当你增加功能时,有时要更改数据库的设计。
因为你有用户管理,肯定有一个用户表,常见字段为: ID,用户名,密码,权限或级别,如果你要存放用户最近最登录时间,哪就要最后登录时间字段。
肯定要有线路表,因为不同的线路,节点多少不一样,所以要设线路ID,线路名2个字段。
再弄个线路站点表:ID,线路ID,站点名称,序号。这样根据线路ID可以把各站点按顺序查询出来。
你先搞清楚自己有哪些功能,要保存哪些数据全部列出来。
Ⅱ 旅游业如何利用大数据
旅游业如何利用大数据
“不是随机样本,而是全体数据;不是精确性,而是混杂性;不是因果关系,而是相关关系。”如今,从硅谷到中关村,“大数据”是一个热门话题,一个大规模生产、分享和应用数据的时代正在开启。在这一背景下,包括旅游业在内的以终端消费者作为服务目标市场的行业,迎来了新的发展机遇。
“大数据”时代到来了
“大数据”被视为云计算之后的又一科技热点。对于“大数据”,目前还没有比较准确的定义,但是一般认为“大数据”就是指无法用现有的软件工具提取、存储、搜索、共享、分析和处理的海量的、复杂的数据集合。
随着信息技术尤其是互联网的发展,人们生产数据的能力越来越强。宽带普及带来的巨量日志和通讯记录,社交网络每天不断更新的个人信息,非传统IT设备产生的数据信息,以及持续增加的各种智能终端产生的图片及信息,这些爆炸性增长的数据充斥整个网络。
中国旅游研究院政策所副研究员唐晓云说,除了数据量大之外,“大数据”不同于传统数据地方更在于即时性、非结构化。这就使得传统数据处理部门无法进行传统意义上的存储、管理和分析。
难道这些数据真的一文不值的吗?不。人们发现通过一定的方法,可以在这些纷繁复杂的数据中发现价值。
首都经济贸易大学旅游管理系副教授李云鹏说,“大数据”之大,并不仅仅在于其容量之大,更多的意义在于,人类可以“分析和使用”的数据在大量增加,通过这些数据集的交换、整合和分析,人类可以发现新的知识,创造新的价值,知识的边界在不断延伸。
前景广阔超越传统
提到“大数据”在旅游行业的应用,不得不提到一家名为Hopper的旅游网站。据了解,Hopper通过“大数据”技术的应用,为游客提供最佳的旅游景点推荐。截至目前,Hopper声称自己已经抓取了“超过5亿页旅游数据”,而这一数字有望在今年年底达到10亿。各大旅游公司均已在“大数据”应用领域开始了一定的尝试。
随着“大数据”的应用热潮,国内旅游行业也开始重视“大数据”的应用。记者在采访旅游企业、旅游研究机构、旅游管理部门的过程中,也发现不少人已经开始关注、研究和应用“大数据”了。
“智游啦”是一家基于“大数据”挖掘、为游客提供“微攻略”的旅行规划服务网站。记者在网站上看到,只要游客点击想要去的地方,便会自动弹出相关的吃住行游购娱产品,这些产品不是简单的列表,而是基于网络评价的好坏筛选出来的精品。当用户面对一堆旅行目的地,而又不知道如何去规划自己的行程时,只需要选择自己喜欢的旅行风格,系统便为其量身定制出一个最合理的旅行计划。
整个世界已经进入了“大数据时代”,到了可以通过数据挖掘、数据的整合营销从而产生巨大产业收益的时候了。这一时代不光给旅游服务企业,也给了很多
相应以终端消费者作为服务目标市场的行业挖金、掘金的可能性。
“旅游行业是‘大数据’应用前景最广阔的行业之一。”闫向军说,有了“大数据”,可以准确预知客流趋向,进而采取相应的措施疏导客流;有了“大数据”,可以知道游客喜欢什么样的产品,进而开发建设适销对路的产品;有了“大数据”,还可以知道游客需要什么样的公共服务,进而改进旅游公共服务……这些都是具体的方面。
唐晓云说,旅游行业没有作为一个独立的产业列入国家产业目录,这就造成了全国统一、标准化的统计数据相对欠缺。无论是政府决策、学术研究,还是企业经营,都会面临数据相对缺乏的困境。但是,如果能够应用“大数据”,那么旅游行业就不愁没数据了!
闫向军认为,“大数据”对旅游行业的影响不是某个企业或某个领域,而是全方位的,是整个行业管理决策模式的转变。
首都经贸大学旅游管理系副教授李云鹏表示,随着大数据所蕴含价值的不断释放,旅游业大数据应用的未来必定是丰富多彩的,也会为旅游业的发展注入一股新的朝气和活力,发展前景广阔而且具有超越传统旅游业发展的特殊价值。
北京第二外国语大学旅游管理学院教授李宏表示,就旅游行业来讲,如果一个企业能够在大数据的应用方面先行一步,那么在未来的竞争中就能占得先机。
数据收集分析是难题
虽然“大数据”是个好东西,在旅游行业的应用前景也非常广阔,但是整个行业对于大数据的应用,仍存在较大的障碍。这些障碍来自于数据的收集,更来自于数据的分析和挖掘。
“大数据时代缺的不是数据,而是方法。”中国旅游研究院杨彦锋说,在数据极大丰富的时代,每个人都会产生巨大的数据,但是这些数据如何收集、挖掘、利用才是问题的根本。
史道发是北京某旅游规划设计院的一名规划师,他告诉记者,规划行业是最需要数据支撑的,但是现在的数据收集是个难点。“要是旅游规划应用了大数据,那就更能贴近市场、贴近游客了。”
大数据时代,数据是海量的,但是掌握这些数据的机构却不是开放的。目前,“大数据”的最主要来源是互联网,但是随着人们对“大数据”价值的认识,越来越多的平台将数据看做是重要的资产。因此要获得这些数据,必须要获得许可。
山东省旅游局是较早开展“大数据”收集和应用的行业管理机构,他们在收集“大数据”时也面临类似的问题。闫向军告诉记者,他们通过与网络公司合作获取了其免费提供的数据,但是这些数据对于普通机构来说,必须要付出一定的成本。此外,在获取住宿数据的时候更是大费周折。“由于各部门之间的系统都是相互独立的,不能彼此联网,要想获得另一个领域的数据非常困难,更何况相关企业或研究机构了。”
正如许多“大数据”研究者所说,“大数据”研究的重要条件是“数据开放”,但目前我国的数据开放程度远不能达到应用的要求。
“大数据”技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。
李云鹏说,由于数据是非系统化的,且不具有一致性和可靠性,因此企业很难有效地对数据进行操作。
在采访中,记者也发现,虽然多数人看好“大数据”的应用前景,但是在面对如何应用时多少会有点儿茫然。这种茫然主要是因为“大数据”的复杂。
据统计,现在计算机处理的大多是结构化数据,但这些信息只占互联网上流动信息的约10%。其他90%数据是非结构化数据,它们存储在音频、视频、社交媒体、网络日志等中,不直接以结构化模式储存。管理和分析这些非结构化的数据,让多数人感到有心无力。
闫向军说,大数据应用的根本在于从不相关的数据中找到相关性,如何分析纷繁复杂的数据至关重要,这就需要懂行业、又懂数据的人进行专业化的分析。但是目前“懂数据的人不懂旅游,懂旅游的人不懂数据。”
李宏认为,目前“大数据”研究主要在IT领域,旅游行业对于“大数据”的研究很少。如果要应用“大数据”,如何分析这些复杂的数据是一个难题。
此外,隐私也是大数据时代不得不面对的一大难题,甚至有不少人喊出了“大数据时代没有隐私”。正如一名网友在微博上所说,你在浏览网页时,你的浏览偏好可能被记录;你在下载手机应用时,你的需求偏好也可能被记录;甚至,旅行时对旅行社、旅游景区、酒店的偏好都可能被记录……而这一切,有个冠冕堂皇的理由:为了给您提供更好的服务。
从数据化入手
从记者采访的情况看,旅游行业普遍对于“大数据”仍显陌生,多数企业也不知道该如何应用“大数据”。
对此,杨彦锋说,目前旅游行业对“大数据”还停留在认识阶段,基本谈不上应用,即便是应用也仅在在线旅游企业。目前只有携程、艺龙、去哪儿等大的平台型互联网企业才能掌握足够大的数据。
李宏表示,现在讨论的所谓旅游企业“大数据”应用,更多的是“数据挖掘”的概念。
虽然目前旅游行业在“大数据”的应用上还存在较大的障碍,但是这并不代表可以不关注“大数据”。
“大数据”时代,每一个行业或企业都应该未雨绸缪,为以后“大数据”的应用做准备。
李云鹏说,对于旅游管理部门来讲,需要对游客旅游过程中产生的所有数据、旅游企业经营活动中产生的所有数据、旅游管理和目的地促销活动中产生的所有数据进行深入挖掘分析,为旅游决策提供可靠的依据和支撑,从而进一步提高效益,促进行业转型升级;对于旅游企业来讲,需要逐步通过对大量数据的分析和挖掘,指导和管理工作,如酒店更加精准地根据顾客特征和偏好推荐有吸引力的旅游产品和服务、旅游景区更好地进行客流疏导和调控、旅行社更方便地整合信息资源而开发出更有针对性和个性化的旅游产品等。
对于如何着手“大数据”的应用工作,李宏建议,旅游企业从企业内部管理系统着手,增强企业内部的数据化程度,进而改造优化内部管理流程。在客户管理方面则应该加强客户信息的收集,注重客户数据的积累,而不是简单地把这些数据放弃。
“虽然大数据的概念十分热,但是对于很多实体企业与传统行业而言,还是要扎扎实实地完成企业自身业务的数据化。”某知名网站主编何川说,短期内,多数企业还是要把重点聚焦在企业自身的业务模式上。
史道发说,“大数据”不仅仅是一个数据库的概念,但是却离不开数据库。因此旅游行业要应用“大数据”必须先从数据积累做起,借助目前智慧旅游平台的建设,注重游客数据的收集,进而建立一个相对完善的旅游数据库,为以后“大数据”的应用打好基础。
对此,李云鹏还建议,旅游管理机构应该有计划地公布旅游业运行的原始数据,鼓励技术公司开发基于原始数据的应用平台,服务于游客和旅游企业及旅游管理部门。
另外一种“大数据”应用方式则是购买第三方服务。目前,谷歌、网络、携程、艺龙、去哪儿等大型平台型网络都掌握着海量的数据。
“如果第三方大数据服务价格较低,‘大数据’确实有价值,企业完全可以通过购买数据服务来提升自身素质。”武汉大学信息管理学院教授沈阳说,微博就是“大数据”产生的一个重要平台,旅游行业要利用“大数据”不妨从微博的数据收集入手。
Ⅲ 旅游信息管理系统 数据库
前阶段做的ATM机的,楼主要不修改下吧,呵呵!
有两个小步骤没做完,楼主自己看一下!
use master
if exists(select * from sysdatabases where name='bankDB')
drop database bankDB
GO
---建库bankDB
create database bankDB
on
(
name='bankDB',
filename='D:\bank\bankDB.mdf',
filegrowth=15%
)
use bankDB
GO
---创建用户信息表(userInfo)
create table userInfo
(
customerID INT IDENTITY(1,1),
customerName VARCHAR(10) NOT NULL,
PID NUMERIC(18,0) NOT NULL,
telephone VARCHAR(15) NOT NULL,
address VARCHAR(30)
)
GO
---创建信息表的约束
ALTER TABLE userInfo ADD
CONSTRAINT PK_custonerID PRIMARY KEY(customerID),
CONSTRAINT CK_PID CHECK(len(PID)=18 or len(PID)=15),
CONSTRAINT UQ_PID UNIQUE(PID),
CONSTRAINT CK_telephone CHECK(telephone LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' OR telephone LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' OR telephone LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
---创建银行卡信息表(cardInfo)
CREATE TABLE cardInfo
(
cardID VARCHAR(20) NOT NULL,
curType VARCHAR(6) NOT NULL,
savingType VARCHAR(8),
openDate DATETIME NOT NULL,
openMoney MONEY NOT NULL,
balance MONEY NOT NULL,
pass VARCHAR(6) NOT NULL,
isReportLoss BIT NOT NULL,
customerID INT NOT NULL
)
GO
---创建银行卡信息表的约束
ALTER TABLE cardInfo ADD
CONSTRAINT PK_cardID PRIMARY KEY(cardID),
CONSTRAINT CK_cardID CHECK (cardID like '1010 3576 [0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9]'),
CONSTRAINT DF_curType DEFAULT 'RMB' FOR curType,
CONSTRAINT CK_savingType CHECK(savingType IN ('活期' , '定活两便' , '定期')),
CONSTRAINT DF_openDate DEFAULT GETDATE() FOR openDate,
CONSTRAINT CK_openMoney CHECK (openMoney>=1),
CONSTRAINT CK_balance CHECK (balance>=1),
CONSTRAINT CK_pass CHECK (LEN(pass)=6),
CONSTRAINT DF_pass DEFAULT '888888' FOR pass,
CONSTRAINT DF_isReportLoss DEFAULT '0' FOR isReportLoss,
CONSTRAINT FK_customerID FOREIGN KEY (customerID) REFERENCES userInfo(customerID)
GO
---创建交易信息表(transInfo)
CREATE TABLE transInfo
(
transDate DATETIME NOT NULL,
cardID VARCHAR(20) NOT NULL,
transType VARCHAR(4) NOT NULL,
transMoney MONEY NOT NULL,
remark NTEXT
)
GO
---创建交易信息表的约束
ALTER TABLE transInfo ADD
CONSTRAINT DF_transDate DEFAULT GETDATE() FOR transDate ,
CONSTRAINT FK_cardID FOREIGN KEY (cardID) REFERENCES cardInfo(cardID),
CONSTRAINT CK_transType CHECK (transType='存入' or transType='支取'),
CONSTRAINT CK_transMoney CHECK (transMoney >0)
----测试插入数据
insert into userInfo values('张三','123456789012340','010-67898978','北京海淀')
insert into userInfo values('李四','320504198607221250','0512-65331652','江苏苏州')
insert into userInfo values('王五','320504198607223333','0512-65323442','江苏南京')
insert into userInfo values('赵六','320504198607131313','0512-65331643','江苏苏州')
insert into userInfo values('方六','320504194407131543','0512-65331243','江苏盐城')
insert into cardInfo values('1010 3576 1212 1134','RMB','活期','2006-10-01',1.0000,1.0000,'888888','','1')
insert into cardInfo values('1010 3576 1212 5555','RMB','活期','2006-10-01',1000.0000,1000.0000,'888888','','2')
insert into cardInfo values('1010 3576 2323 3343','RMB','活期','2006-12-01',15345.0000,1000.0000,'888888','','3')
insert into cardInfo values('1010 3576 1456 3454','RMB','活期','2006-11-28',2343.0000,1000.0000,'888888','','4')
insert into cardInfo values('1010 3576 1356 3554','RMB','活期','2006-12-05',22143.0000,10020.0000,'888888','','8')
----插入违背约束语句
insert into userInfo values('沈非','123456789','0512-67998978','江苏苏州') ---违背身份证长度的CHECK约束
insert into userInfo values('沈大','320504198607131313','0512-67998979','江苏苏州') ---违背身份证的唯一约束
insert into cardInfo values('1010 3576 1456 3424','RMB','活期','2006-11-28',0.0000,0,'888888','','5') ---违背开户金额不能<1的CHECK约束
insert into transInfo values('','1010 3576 1456 3424','支取',1000,'') ---违背主外键约束,交易卡号必须存在于cardInfo中
---查看所有表
select * from userInfo
select * from cardInfo
select * from transInfo
---创建存储过程:根据卡号修改密码
CREATE PROC proc_changePass @incardID VARCHAR(20),@inoldPass VARCHAR(6),@newPass1 VARCHAR(6),@newpass2 VARCHAR(6)
AS
DECLARE @oldPass VARCHAR(6)
IF EXISTS(SELECT * FROM cardInfo WHERE cardID=@incardID)
BEGIN
SELECT @oldPass=pass FROM cardInfo WHERE cardID=@incardID
IF(@oldpass=@inoldPass)
BEGIN
IF(@newpass1=@newpass2)
BEGIN
UPDATE cardInfo SET pass=@newPass1 WHERE cardID=@incardID
PRINT '密码修改成功!'
END
ELSE
PRINT '请确认您的新密码!'
END
ELSE
PRINT '您输入的原密码错误,请重新输入!'
END
ELSE
PRINT '您输入的卡号不存在,请重新输入!'
---测试修改密码的存储过程
EXEC proc_changePass '1010 3576 1212 1134','888888','123456','123456'
---创建挂失银行卡的存储过程
CREATE PROC proc_lossCard @inCustomerName VARCHAR(10),@inPID NUMERIC(18,0),@inTelephone VARCHAR(15),@inAddress VARCHAR(30),@inCardPass VARCHAR(6)
AS
DECLARE @customerName VARCHAR(10),@PID NUMERIC(18,0),@telephone VARCHAR(15),@address VARCHAR(30),@cardPass VARCHAR(6)
SELECT @customerName=customerName,@PID=PID,@telephone=telephone,@address=address FROM userInfo WHERE PID=@inPID
SELECT @cardPass=pass FROM cardInfo WHERE customerID=(SELECT customerID FROM userInfo WHERE PID=@inPID)
IF((@customerName=@inCustomerName)AND(@PID=@inPID)AND(@inTelephone=@telephone)AND(@inAddress=@address)AND(@inCardPass=@cardPass))
BEGIN
UPDATE cardInfo SET isReportLoss=1 WHERE customerID=(SELECT customerID FROM userInfo WHERE PID=@inPID)
END
ELSE
PRINT '您的信息有误,请核对后重新输入!'
----测试挂失的存储过程
EXEC proc_lossCard '王五','320504198607223333','0512-65323442','江苏南京','888888'
---统计银行流通金额
DECLARE @inMoney MONEY,@outMoney MONEY
SELECT @inMoney=sum(transMoney) from transInfo where transType='存入'
SELECT @outMoney=sum(transMoney) from transInfo where transType='支取'
PRINT '银行流通总额为:'+ convert(varchar(20),@inMoney-@outMoney)+' RMB'
PRINT '盈利结算为:'+convert(varchar(20),@outMoney*0.008-@inMoney*0.003)+' RMB'
GO
---查询月交易冠军的银行卡信息
SELECT * FROM transInfo WHERE
print CONVERT(VARCHAR(20),@money)
SELECT * FROM cardInfo WHERE
---查询半年未交易的卡信息
SELECT * FROM cardInfo WHERE cardID NOT IN (SELECT cardID FROM transInfo WHERE DATEDIFF(mm,transDate,getdate())>7)//////////
---查询本周开户的帐号
SELECT * FROM cardInfo where DATEDIFF(WEEK,openDate,getdate())<1
---查询挂失帐号的客户信息
SELECT * FROM userInfo where customerID IN(SELECT customerID FROM cardInfo where isReportLoss=1)
---催款提醒业务
SELECT customerName AS 客户姓名,telephone AS 联系电话,balance AS 余额 FROM
userInfo INNER join cardInfo ON userInfo.customerID=cardInfo.customerID WHERE balance<200 AND datepart(day,getdate())>=28
---给transInfo表的cardID字段添加非聚集索引
CREATE NONCLUSTERED INDEX IX_transInfo_cardID ON transInfo(cardID) WITH FILLFACTOR=70
---测试索引
SELECT * FROM transInfo (INDEX=IX_transInfo_cardID) WHERE cardID='1010 3576 1212 1134'
---创建视图
CREATE VIEW view_userInfo
AS
SELECT customerID AS 客户编号,customerName AS 客户姓名,PID AS 身份证号,telephone AS 电话号码,address AS 联系地址 FROM userInfo
CREATE VIEW view_cardInfo
AS
SELECT cardId AS 卡号,curType AS 货币种类,savingType AS 存款类型,openDate AS 开户日期,openMoney AS 开户金额,balance AS 帐户余额,pass AS 密码,isReportLoss AS 是否挂失,customerID AS 顾客编号 FROM cardInfo
CREATE VIEW view_transInfo
AS
SELECT transDate AS 交易日期,cardID AS 卡号,transType AS 交易类型,transMoney AS 交易金额,remark AS 备注 FROM transInfo
---查看视图
SELECT * FROM view_userInfo
SELECT * FROM view_cardInfo
SELECT * FROM view_transInfo
---创建触发器
CREATE TRIGGER trig_trans
ON transInfo
FOR INSERT
DECLARE @transType VARCHAR(4)
---创建触发器trig_trans
drop trigger trig_trans
CREATE TRIGGER trig_trans ON transInfo
FOR INSERT
AS
DECLARE @transType VARCHAR(4),@transMoney MONEY,@cardID VARCHAR(20),@balance MONEY,@customerName VARCHAR(10)
SELECT @transType=transType,@transMoney=transMoney,@cardID=cardID FROM inserted
SELECT @balance=balance FROM cardInfo WHERE cardID=@cardID
SELECT @customerName=customerName FROM userInfo WHERE customerID=(SELECT customerID FROM cardInfo WHERE cardID=@cardID)
BEGIN TRAN
IF (@transType='支取')
BEGIN
IF (@balance-@transMoney<1) ---如果取款后余额不足1元
BEGIN
PRINT '正在交易,请稍等....'
ROLLBACK TRAN ---取消交易,回滚
PRINT '余额不足,交易失败!'
END
ELSE
BEGIN
PRINT '正在交易,请稍等...'
COMMIT TRAN ---交易成功
UPDATE cardInfo SET balance=@balance-@transMoney WHERE cardID=@cardID
PRINT '交易成功,'+CONVERT(VARCHAR(10),@customerName)+' 您进行的是取款操作,当前的余额为:'+CONVERT(VARCHAR(20),@balance-@transMoney)+' RMB'
END
END
ELSE
BEGIN
PRINT '正在交易,请稍等...'
COMMIT TRAN
UPDATE cardInfo SET balance=@balance+@transMoney WHERE cardID=@cardID
PRINT '交易成功,'+CONVERT(VARCHAR(10),@customerName)+' 您进行的是存款操作,当前的余额为:'+CONVERT(VARCHAR(20),@balance+@transMoney)+' RMB'
END
INSERT INTO transInfo VALUES('','1010 3576 1212 5555','支取',999,'aa')
----创建存入与支取的存储过程
drop proc proc_transInfo
CREATE PROC proc_transInfo @customerName VARCHAR(10),@transMoney MONEY,@transType VARCHAR(4),@pass VARCHAR(6)=''
AS
DECLARE @pwd VARCHAR(6)
DECLARE @cardID VARCHAR(20)
SELECT @pwd=pass ,@cardID=cardID FROM cardInfo WHERE customerID=(SELECT customerID FROM userInfo WHERE customerName=@customerName)---由userInfo姓名字段查询得用户的卡号和密码
PRINT '您的卡号为: '+CONVERT(VARCHAR(20),@cardID) ---将用户的卡号输出
IF(@transType='存入')
BEGIN
PRINT '正在交易,请稍等...'
INSERT INTO transInfo VALUES('',@cardID,@transType,@transMoney,'')
PRINT '交易成功,您成功从卡上存入了'+CONVERT(VARCHAR(20),@transMoney)
END
ELSE
BEGIN
IF(@pwd=@pass)
BEGIN
PRINT '正在交易,请稍等...'
INSERT INTO transInfo VALUES('',@cardID,@transType,@transMoney,'')
PRINT '支取成功,您成功从卡上支取了'+CONVERT(VARCHAR(20),@transMoney)
END
ELSE
BEGIN
PRINT '密码错误,请重新输入!'
END
END
GO
EXEC proc_transInfo '王五',100,'支取','888888' ----模拟存入与支取
----创建产生随机卡号的存储过程
CREATE PROC proc_RANDcardID @mycardID VARCHAR(20) OUTPUT
AS
DECLARE @rand NUMERIC(15,8)
DECLARE @randcardID VARCHAR(10)
SELECT @rand=RAND(CONVERT(INT,DATEPART(mm,GETDATE()) * 100000)+
CONVERT(INT,DATEPART(ss,GETDATE()) * 1000)+
CONVERT(INT,DATEPART(ms,GETDATE())))
SET @randcardID=SUBSTRING(CONVERT(VARCHAR(10),@rand),3,4)+' '+SUBSTRING(CONVERT(VARCHAR(10),@rand),7,4)
SET @mycardID='1010 3576'+' '+@randcardID
GO
----调用随机卡号生成存储过程,产生随机卡号
DECLARE @mycardID VARCHAR(20)
EXEC proc_RANDcardID @mycardID OUTPUT
PRINT '产生的随机卡号为:'+@mycardID
----创建开户的存储过程
drop proc proc_openAccount
CREATE PROC proc_openAccount @customerName VARCHAR(10),@PID NUMERIC(18,0),@telephone VARCHAR(15),@openMoney MONEY,@savingType VARCHAR(8),@address VARCHAR(30)
AS
WHILE(1=1)
BEGIN
DECLARE @mycardID VARCHAR(20)
EXEC proc_RANDcardID @mycardID OUTPUT
IF NOT EXISTS(SELECT cardID FROM cardInfo WHERE cardID=@mycardID)
BEGIN
INSERT INTO userInfo VALUES(@customerName,@PID,@telephone,@address)
DECLARE @customerID INT
SELECT @customerID=customerID FROM userInfo WHERE PID=@PID
INSERT INTO cardInfo(cardID,savingType,openMoney,balance,customerID) VALUES(@mycardID,@savingType,@openMoney,@openMoney,@customerID)
PRINT '开始开户,请稍等....'
PRINT '开户成功!您的卡号为:'+@mycardID
PRINT '开户日期:'+CONVERT(VARCHAR(20),GETDATE())
PRINT '开户金额为:'+CONVERT(VARCHAR(20),@openMoney)
BREAK
END
END
GO
---模拟开户,调用存储过程proc_openAccount
EXEC proc_openAccount '沈非','320504198607221447','13914048959',3999,'活期','苏州职业大学'
---创建帐户间转帐的存储过程
drop proc proc_trans
CREATE PROC proc_trans @outcardID VARCHAR(20),@incardID VARCHAR(20),@transMoney MONEY
AS
DECLARE @outbalance MONEY,@inbalance MONEY,@isReportLoss1 BIT,@isReportLoss2 BIT
SELECT @outbalance=balance FROM cardInfo WHERE cardID=@outcardID
SELECT @inbalance=balance FROM cardInfo WHERE cardID=@incardID
SELECT @isReportLoss1=isReportLoss FROM cardInfo WHERE cardID=@outcardID
SELECT @isReportLoss2=isReportLoss FROM cardInfo WHERE cardID=@incardID
IF(@isReportLoss1 =0 AND @isReportLoss2=0)
BEGIN
IF(@outbalance-@transMoney<1)
BEGIN
PRINT '正在交易中,请稍等....'
PRINT '交易失败,余额不足,无法转帐!'
PRINT '您的余额为:'+CONVERT(VARCHAR(20),@outbalance)+' RMB'
END
ELSE
BEGIN
PRINT '正在交易中,请稍等....'
INSERT INTO transInfo(cardID,transType,transMoney) VALUES(@outcardID,'支取',@transMoney)
INSERT INTO transInfo(cardID,transType,transMoney) VALUES(@incardID,'存入',@transMoney)
UPDATE cardInfo SET balance=@outbalance-@transMoney WHERE cardID=@outcardID
UPDATE cardInfo SET balance=@inbalance+@transMoney WHERE cardID=@incardID
PRINT '转帐成功!'
PRINT
END
END
ELSE
PRINT '有一方卡已经挂失,请主动投案自首!交易失败'
----模拟转帐
EXEC proc_trans '1010 3576 1356 3554','1010 3576 1212 1134',1000
---添加登陆帐户
EXEC SP_ADDLOGIN 'philip','65331652'
---创建数据库用户
EXEC SP_GRANTDBACCESS 'philip'
---赋予三张表的增删改查权限
GRANT SELECT,INSERT,DELETE,UPDATE ON userInfo TO philip
GRANT SELECT,INSERT,DELETE,UPDATE ON cardInfo TO philip
GRANT SELECT,INSERT,DELETE,UPDATE ON transInfo TO philip
---赋予存储过程的执行权限
GRANT EXEC ON proc_changePass TO philip
GRANT EXEC ON proc_lossCard TO philip
GRANT EXEC ON proc_transInfo TO philip
GRANT EXEC ON proc_RANDcardID TO philip
GRANT EXEC ON proc_openAccount TO philip
GRANT EXEC ON proc_trans TO philip
Ⅳ 遥感作业空间数据库的建立流程有那些
建模,入库,生产。
数据库建模过程。这一过程主要是根据行业应用特点及对其的理解,制定出比较规范的数据规范,在逻辑上建设数据库。数据监理过程。这一过程主要是检测数据的正确性,从而保证建库的准确性。利用各种工具将各种数据入库的过程。此过程主要是将可以得到的各种数据纸制数据,矢量数据,栅格数据,遥感数据等快速、准确的入到库中。
通过设计和建database空间数据库,掌握空间数据库设计和建设流程,学会所学GIS知识独立分析决问题的能力,对所学建库知识进行一个完整的串接。需求分析,旅游业是一个综合性很强的信息依赖型产业,旅游信息的获取、加工、传播和利用对旅游业的发展起着举足轻重的作用。从旅游者和旅游规划管理部门的需求出发建立旅游信息数据库,不仅可以使旅游者和旅游规划管理部门能够快速、准确地查找和检索自己所需要的旅游信息,而且能够促进旅游信息规范化和标准化,促进旅游信息的共享,打破对旅游信息的封锁;旅游信息数据库的建立有利于从整体上对旅游业进行宏观的调控和管理,有利于旅游业协调、健康有序的发展。