校车定位服务系统数据库初步设计
来源:互联网 发布:js bind方法实现 编辑:程序博客网 时间:2024/04/29 20:57
数据库和接口设计
1、 分析
设计了以下数据库模型。此次数据库采用较为简单的MS SQL,主要有五个表单,Tab_Station(汽车停靠站点),Tab_RegBus(班车时刻信息),Tab_Bus(汽车信息表),Tab_Admin(管理员信息),Tab_System(系统信息)。
2、 数据库基本表单
Tab_Station:
列名 数据类型 允许空 备注
StaID Int No 站点编号
StaName Varchar(25) 站点名
StaLati Float 经度
StaLongi Float 纬度
Tab_ReguBus
列名 数据类型 允许空 备注
RegID Int no 班车时刻编号
RegDocking Varchar(25) 停靠站
RegDrivInterval Varchar(50) 行车区间
RegPickUp Varchar(25) 上车地点
RegFirstTime Time 首发时间
RegDriveDirect Varchar(100) 行车路线
RegTeam Varchar(25) 所属车队
Tab_Bus
列名 数据类型 允许空 备注
BusID Int No 汽车编号
BusLati Float 经度
BusLongi Float 纬度
BusTime Time 时间
Property Varchar(100) 记录汽车属性(待定)
Tab_Admin
列名 数据类型 允许空 备注
AdmID Int No 管理员编号
AdmName Varchar(25) No 管理员姓名(账号)
AdmPWD Varchar(25) No 密码
LoginIP Varchar(25) 登陆IP
LoginLog Varchar(100) 操作日志
LogTime time 记录时间
Tab_System
列名 数据类型 允许空 备注
SysID int no 系统信息编号
LoginIP Varchar(25) 事件对应IP地址
SysTime Time 事件发生时间
SysLog Varchar(100) 系统操作
IsAdmin Int 是否为管理员
Property Varchar(25) 拓展
3、 SQL
Create database BD_DB
GO
use BD_DB
GO
create table Tab_Station
(StaID int identity(1,1) primary key not null,
StaName varchar(25),
StaLati float,
StaLongi float
);
GO
create table Tab_RegBus
(RegID int identity(1,1) primary key not null,
RegDocking varchar(25) not null,
RegDrivInterval varchar(25),
RegPickUp varchar(25),
RegFirstTime time,
RegDriveDirect varchar(100),
RegTeam varchar(25)
);
GO
create table Tab_Bus
(BusID int identity(1,1) primary key not null,
BusLati float,
BusLongi float,
BusTime time,
Property varchar(25)
);
GO
Create table Tab_Admin
(AdmID int identity(1,1) primary key not null,
AdmName varchar(25) not null,
AdmPWD varchar(25) not null,
LoginIP varchar(25),
LoginLog varchar(100),
LogTime time
);
GO
Create table Tab_System
(SysID int identity(1,1) primary key not null,
LoginIP varchar(25),
SysTime time,
SysLog varchar(100),
IsAdmin int,
property varchar(25)
);
PL/SQL
/站点信息查询/
create procedure sp_Select_Sta
@staid int
as
begin
select *
from Tab_Station
where @staid=staid
end
GO
/站点信息插入/
create procedure sp_Insert_Sta
@staname varchar(25),
@stalati float,
@stalongi float
as
begin
insert into Tab_Station(staname,stalati,stalongi) values (@staname,@stalati,@stalongi)
end
GO
/车辆时刻信息查询/
create procedure sp_Select_RegBus
@regid int
as
begin
select *
from Tab_RegBus
where @regid=Regid
end
GO
/车辆时刻信息插入/
create procedure sp_Insert_Reg
@RegDocking varchar(25),
@RegDrivInterval varchar(50),
@RegPickUp varchar(25),
@RegFirstTime time,
@RegDriveDirect varchar(100),
@RegTeam varchar(25)
as
begin
insert into Tab_ReguBus(RegDocking,RegDrivInterval,RegPickUp,RegFirstTime,RegDriveDirect,RegTeam) values (@RegDocking,@RegDrivInterval,@RegPickUp,@RegFirstTime,@RegDriveDirect,@RegTeam)
end
GO
/车辆信息查询/
create procedure sp_Select_Bus
@busid int
as
begin
select *
from Tab_Bus
where @busid=busid
end
GO
/车辆信息插入/
create procedure sp_Insert_Bus
@BusID Int,
@BusLati Float,
@BusLongi Float,
@BusTime Time,
@Property Varchar(100)
as
begin
insert into Tab_Bus(BusLati,BusLongi,BusTime,Property) values (@BusLati,@BusLongi,@BusTime,@Property)
end
GO
/管理员信息查询/
create procedure sp_Select_Admin
@admid int
as
begin
select *
from Tab_Admin
where @admid=Admid
end
GO
/管理员信息插入/
create procedure sp_Insert_Admin
@AdmName Varchar(25),
@AdmPWD Varchar(25),
@LoginIP Varchar(25),
@LoginLog Varchar(100),
@LogTime time
as
begin
insert into Tab_Admin(AdmName,AdmPWD,LoginIP,LoginLog,LogTime) values (@AdmName,@AdmPWD,@LoginIP,@LoginLog,@LogTime)
end
GO
/系统信息查询/
create procedure sp_Select_Sys
@Sysid int
as
begin
select *
from Tab_System
where @sysid=sysid
end
GO
/系统信息插入/
create procedure sp_Insert_System
@LoginIP Varchar(25),
@SysTime Time,
@SysLog Varchar(100),
@IsAdmin Int,
@Property Varchar(25)
as
begin
insert into Tab_System(LoginIP,SysTime,SysLog,IsAdmin,Property) values (@LoginIP,@SysTime,@SysLog,@IsAdmin,@Property)
end
GO
4、 数据库基本操作
1) 数据库连接
import java .sql.*;
public class sql {
public static void main(String[] args) {
try {
String address = “jdbc:microsoft:sqlserver://localhost:1433”;
//驱动类型+目标数据库ip+数据库端口
String user=”sa”;//数据库用户密码
String passwd=”“;//口令
String database = “pubs”;//目标数据库
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();//驱动申明
Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
con.setCatalog(database);//确定目标数据库
Statement smt =
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//建立描述,设定结果集支持滚动光标且敏感,不可编辑
String selCode = “SELECT test1,test2 FROM test”;//查询语句
ResultSet rs = smt.executeQuery(selCode);//结果集
if(rs.last()) {//从第一条往后依次取结果集中的记录
String userId = rs.getString(1);//等同rs.getString(“userId”),即第一个字段数据
String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型
//若是中文字段,一般需要转码
//userName = new String(userName.getBytes(“ISO-8859-1”),”gb2312”);
System.out.println(userId+”:”+userName);//输出此条记录的查询结果
}
rs.close();//释放资源
smt.close();
con.close();
}
catch(Exception e) {
System.out.println(e);//捕捉异常
}
}
}
2) 执行SQL语句和存储过程
具体我想写一个操作基本数据库的包,请准备开发中间件组的同学是否可以给出所需基本函数?因为时间关系,我没考虑好具体写哪些操作过程,如果上面存储过程和数据库修改的话,我会给出新的数据库和存储过程。具体的基本数据库操作包还是需要的,大家先看看,然后给我答复。
5、 存在的问题
1) 上面的SQL语句直接执行,然后就可以建立一个基本的数据库了,然后执行PL/SQL就可以建立所有的存储过程了,执行存储过程是
Exec 存储过程名字 [参数],…..
2) 这样设计的数据库是空数据库,大家随便写一些信息就行了,至于如何使用google API,请参考:https://developers.google.com/maps/documentation/javascript/?hl=zh-CN
3) 数据库中的Property是说,有些数据是什么我还没想清楚,但是一定会拓展的。
4) 大家会发现数据库中没有约束性要求,是因为我们需要简单的测试,如果添加太多约束,会导致系统不稳定和提高开发的复杂性。
5) 代码的大小写没有关系,MS SQL大小写都可以,我只是按照我自己的写法写的大小写,如有个别差错,可以正常使用。
6) 代码我在MS SQL2008上测试过,可以使用!如果有问题,请及时联系我!
- 校车定位服务系统数据库初步设计
- 校车定位服务系统多线程TCP服务器
- 校车
- 论坛数据库设计初步设计
- 网上报名系统初步设计
- 校车3G视频车载定位导航
- Android系统定位服务
- C++课程设计(校车订票系统)
- C++课程设计(校车订票管理系统)
- 获取系统的定位服务
- 初步设计对复杂系统的意义
- 青岛城乡客运一体化 市区校车智能系统加强
- 毕业设计(六)---数据库初步设计(数据库所有表,后续有更改)
- 对于实训项目功能的确定以及数据库初步设计
- JAVA程序设计(14.1)----- 图书馆管理系统 初步设计 内部功能篇
- JAVA程序设计(14.2)----- 图书馆管理系统 初步设计 界面篇
- 餐馆订餐系统表的初步设计思路
- 定位服务
- 生产环境下 Spark1.3.1 源码编译 thrift功能 及碰到的问题
- Texture Conversion Tool Extended (Texconvex.exe)
- DirectX SDK Tools Catalog
- 【java8新特性】关于接口
- osx中安装atom遇到的问题
- 校车定位服务系统数据库初步设计
- 蓝桥杯 色盲的民主 STLmap
- PHP与其他语言交互-总结
- POJ 3278 Catch That Cow (BFS)
- 「HD_ACM」Financial Management
- CSU 1604 SunnyPig(BFS)
- 嵌入式学习笔记100-uboot1.1.6初体验
- 如何处理跨时钟域
- 一起数据库中过期用户数据堆积问题的排查过程