目的:
初步掌握数据库应用系统分析设计的基本方法;进一步提高分析与解决问题的综合能力;初步掌握数据库建模工具的使用方法;熟悉掌握C/S或B/S结构的数据库应用系统开发的整个过程。
环境:
计算机硬件配置: Apache / PHP / MySQL / 微信小程序
操作系统: Linux / Windows 10 64位 / 微信小程序
数据库管理系统: Mysql数据库服务器
系统设计与开发用到的工具:Sublime Text 2 / 微信web开发者工具 / Dreamweaver / Mysql
内容:
运用数据库基础知识,在数据库应用环境下,完成一个具体的数据库应用系统的分析、设计与实现。
针对设计任务利用建模工具(Rose、PowerDesigner 等)进行数据库建模,在使用SQLserver 基础上,利用一种应用开发工具(PHP、VC、java 等)设计实现一个数据库应用系统。
要求能实现对数据库中数据的插入、删除、修改、查询、统计等功能,做到界面友好、使用方便。所建的数据库表至少满足第三范式,掌握应用系统与数据库相连方法,掌握程序访问数据库中数据的技术方法,进一步提高分析与解决问题的综合能力。
需求说明:
第一,有时候我们会碰到急需别人帮助的紧急情况,所以平台上提供人们发布实时求助的信息,相应的,别人可以接下求助,并收到一定的佣金,最后对该任务订单互相评价。
第二,服务的发布,就是针对有一技之长的人可以在线发布服务,替别人排忧解难,同样也有佣金和评价。
第三,平台也容纳了一个树洞,是一个给用户们交流和互动的平台。用户在茶闲饭后在树洞内可以有更进一步的接触,为小程序吸引用户留下用户。
第四,每一个用户可以在个人页,方便快捷地查看收发的求助/服务/评价/树洞。
发布服务模块:
//service.js
var util = require('../../utils/util.js');
var app=getApp();
Page({
data:{
service_location:'未知位置',
unit_type:['次','小时','分钟','单','幅','天','周','月','份','课时','个','面议'],
unit_index:0,
servive_type:['维修','打印','摄像','代办跑腿','顺风车'],
openid: null,
pic: '/img/upload.png',
servive_index:0,
date: util.formatTime(new Date),
},
chooseImageTap: function () {
let _this = this;
wx.showActionSheet({
itemList: ['从相册中选择', '拍照'],
itemColor: "#E24E42",
success: function (res) {
if (!res.cancel) {
if (res.tapIndex == 0) {
_this.chooseWxImage('album')
} else if (res.tapIndex == 1) {
_this.chooseWxImage('camera')
}
}
}
})
},
chooseWxImage: function (type) {
let _this = this;
wx.chooseImage({
sizeType: ['original', 'compressed'],
sourceType: [type],
success: function (res) {
console.log(res);
_this.setData({
pic: res.tempFilePaths[0],
})
}
})
},
totask:function(){
wx.switchTab({
url: '../task/task'
})
},
bindPickerChange_unit: function(e) {
this.setData({
unit_index: e.detail.value
})
},
bindPickerChange_servive: function(e) {
this.setData({
servive_index: e.detail.value
})
},
submit_service:function(e){
wx.request({
url: 'https://www.cc.com/submit_service.php',
data: {
service_name:e.detail.value.service_name,
service_description:e.detail.value.service_description,
service_price:e.detail.value.service_price,
service_location:this.data.service_location,
unit_index:this.data.unit_index,
servive_index:this.data.servive_index,
service_area:e.detail.value.service_area,
openid:this.data.openid,
service_time: this.data.date
},
method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
}, // 设置请求的 header
success: function(res){
// success
var err=res.data.error
if(err){
console.log('error submit_service ')
}
else{
wx.switchTab({
url: '../serviceshow/serviceshow',
success: function(res){
// success
},
fail: function(res) {
// fail
},
complete: function(res) {
// complete
}
})
}
},
fail: function(res) {
// fail
},
complete: function(res) {
// complete
}
})
wx.uploadFile({
url: 'https://www.cc.com/upload_pic.php',
filePath: this.data.pic,
name: 'file',
header: {
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
}, // 设置请求的 header
formData: { openid: e.detail.value.service_name, time: this.data.date,flag:'service', }, // HTTP 请求中其他额外的 form data
success: function (res) {
console.log(res);
if (res.statusCode == 200 && !res.data.result_code) {
typeof success == "function" && success(res.data);
} else {
typeof fail == "function" && fail(res);
}
},
fail: function (res) {
console.log(res);
typeof fail == "function" && fail(res);
}
})
},
onLoad:function(options){
// 生命周期函数--监听页面加载
var that =this;
app.getUserOpenid(function(openid){
that.setData({
openid:openid
})
})
wx.getLocation({
success: function (res) {
wx.request({
url: 'https://apis.map.qq.com/ws/geocoder/v1/?key=XD7BZ-LWCWG-EKWQY-IRKJU-Y66X7-3MFPO&location=' + res.latitude + ',' + res.longitude,
success: function (res) {
that.setData({
service_location: res.data.result.address
})
}
})
}
})
},
onReady:function(){
// 生命周期函数--监听页面初次渲染完成
},
onShow:function(){
// 生命周期函数--监听页面显示
},
onHide:function(){
// 生命周期函数--监听页面隐藏
},
onUnload:function(){
// 生命周期函数--监听页面卸载
},
onPullDownRefresh: function() {
// 页面相关事件处理函数--监听用户下拉动作
},
onReachBottom: function() {
// 页面上拉触底事件的处理函数
},
onShareAppMessage: function() {
// 用户点击右上角分享
return {
title: 'title', // 分享标题
desc: 'desc', // 分享描述
path: 'path' // 分享路径
}
}
})