当前位置: 首页 > 编程日记 > 正文

诚意租房网blog2

(一)数据库设计部分:

创建数据库hourse:

1:关注表

CREATE TABLE `guanzhu` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`uid` int(11) DEFAULT NULL,

`hid` int(11) DEFAULT NULL,

`time` datetime DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

2:历史表

CREATE TABLE `history` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`uid` int(11) DEFAULT NULL,

`uname` varchar(65) DEFAULT NULL,

`createtime` datetime DEFAULT NULL,

`hid` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=133 DEFAULT CHARSET=utf8;

3:房屋信息表

CREATE TABLE `hourse` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`uname` varchar(255) DEFAULT NULL COMMENT '房东名字',

`uid` int(11) DEFAULT NULL,

`image` varchar(255) DEFAULT NULL COMMENT '主视图',

`image1` varchar(255) DEFAULT NULL,

`image2` varchar(255) DEFAULT NULL,

`area` int(11) DEFAULT NULL COMMENT '面积',

`address` varchar(255) DEFAULT NULL COMMENT '地址',

`rent_type` int(11) DEFAULT NULL COMMENT '0 日租 1月租',

`day_price` double DEFAULT NULL COMMENT '日租金',

`month_price` double DEFAULT NULL COMMENT '月租金',

`hourse_type` int(66) unsigned DEFAULT NULL COMMENT '1一室一厅2两室一厅3三室一厅',

`state` int(11) DEFAULT '0' COMMENT '0可申请 1已申请 2已审核 3已入组 4已退房',

`fabu_state` int(11) DEFAULT '0' COMMENT '0 未审核 自己房屋审核情况',

`name` varchar(64) DEFAULT NULL COMMENT '名字',

`xiaoqv` varchar(64) DEFAULT NULL COMMENT '归属小区',

`introduce` varchar(4000) DEFAULT NULL COMMENT '房子介绍',

`xqintrodece` varchar(4000) DEFAULT NULL COMMENT '小区介绍',

`createtime` datetime DEFAULT NULL COMMENT '发布时间',

`tel` varchar(64) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;

4:订单房屋表

CREATE TABLE `hourse_order` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`hid` int(11) DEFAULT NULL COMMENT '房子ID',

`in_time` datetime DEFAULT NULL COMMENT '入住时间',

`pay_type` int(11) DEFAULT NULL COMMENT '支付方式',

`out_time` datetime DEFAULT NULL COMMENT '退房时间',

`price` double DEFAULT NULL COMMENT '总价',

`state` int(11) DEFAULT NULL COMMENT '申请状态',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

5:留言实体表

CREATE TABLE `message` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`content` varchar(2000) DEFAULT NULL COMMENT '留言内容',

`uid` int(11) DEFAULT NULL COMMENT '留言人',

`hid` int(11) DEFAULT NULL COMMENT '被留言房屋',

`rank` int(11) DEFAULT NULL COMMENT '评分',

`time` datetime DEFAULT NULL COMMENT '评论时间',

`uname` varchar(64) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

6:CREATE TABLE `my_hource` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`hid` int(11) DEFAULT NULL,

`time` datetime DEFAULT NULL,

`uid` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

7:申请表

CREATE TABLE `shenqing` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`uid` int(11) DEFAULT NULL COMMENT '申请人id',

`hid` int(11) DEFAULT NULL COMMENT '房子ID',

`time` datetime DEFAULT NULL COMMENT '申请时间',

`uname` varchar(64) DEFAULT NULL COMMENT '房东姓名',

`state` int(11) DEFAULT NULL COMMENT '申请状态',

`intime` varchar(64) DEFAULT NULL COMMENT '入住时间',

`renttype` int(11) DEFAULT NULL COMMENT '租住类型',

`price` double DEFAULT NULL COMMENT '价格',

`hname` varchar(64) DEFAULT NULL COMMENT '房子姓名',

`huid` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

8:用户表

CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(255) DEFAULT NULL,

`password` varchar(255) DEFAULT NULL,

`realname` varchar(255) DEFAULT NULL,

`role` varchar(32) DEFAULT 's' COMMENT 'admin guest',

`image` varchar(64) DEFAULT NULL COMMENT 'u图片',

`address` varchar(255) DEFAULT NULL COMMENT '收货地址',

`phone` varchar(64) DEFAULT NULL,

`idnumber` varchar(65) DEFAULT NULL COMMENT '身份证号',

`tel` varchar(64) DEFAULT NULL,

`sex` int(11) DEFAULT '0',

`pay` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

(二)典型代码展示部分:(代码不知道贴什么,所以详细设计与系统实现还是见文档吧)

import java.util.*;

import java.util.Map.Entry;

/**

* 基于用户的协同过滤推荐算法实现

* @author Administrator

*/

public class UserCF {

/**

*

* @param userList 用户喜好集合

* @param recommendUser 需要的用户

* @return

*/

public List<Integer> recoment(List<RecommentUser> userList,Integer recommendUser){

List<Sorf> sorfList = new ArrayList<>();

int[][] sparseMatrix = new int[userList.size()][userList.size()];//建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】

Map<Integer, Integer> userItemLength = new HashMap<>();//存储每一个用户对应的不同物品总数  eg: A 3

Map<Integer, Set<Integer>> itemUserCollection = new HashMap<>();//建立物品到用户的倒排表 eg: a A B

Set<Integer> items = new HashSet<>();//辅助存储物品集合

Map<Integer, Integer> userID = new HashMap<>();//辅助存储每一个用户的用户ID映射

Map<Integer, Integer> idUser = new HashMap<>();//辅助存储每一个ID对应的用户映射

System.out.println("Input user--items maping infermation:<eg:A a b d>");

for(int i = 0; i < userList.size() ; i++){//依次处理N个用户 输入数据  以空格间隔

RecommentUser user = userList.get(i);

int uid = userList.get(i).getId();

int size = userList.get(i).getLikeList().size();

userItemLength.put(uid, size);//eg: A 3

userID.put(uid, i);//用户ID与稀疏矩阵建立对应关系

idUser.put(i, uid);

//建立物品--用户倒排表

for(int j = 0; j < size; j ++){

if(items.contains(user.getLikeList().get(j))){//如果已经包含对应的物品--用户映射,直接添加对应的用户

itemUserCollection.get(user.getLikeList().get(j)).add(uid);

}else{//否则创建对应物品--用户集合映射

items.add(user.getLikeList().get(j));

itemUserCollection.put(user.getLikeList().get(j), new HashSet<Integer>());//创建物品--用户倒排关系

itemUserCollection.get(user.getLikeList().get(j)).add(uid);

}

}

}

System.out.println(itemUserCollection.toString());

//计算相似度矩阵【稀疏】

Set<Entry<Integer, Set<Integer>>> entrySet = itemUserCollection.entrySet();

Iterator<Entry<Integer, Set<Integer>>> iterator = entrySet.iterator();

while(iterator.hasNext()){

Set<Integer> commonUsers = iterator.next().getValue();

for (Integer user_u : commonUsers) {

for (Integer user_v : commonUsers) {

if(user_u.equals(user_v)){

continue;

}

sparseMatrix[userID.get(user_u)][userID.get(user_v)] += 1;//计算用户u与用户v都有正反馈的物品总数

}

}

}

for (int i = 0; i < userList.size(); i++) {

System.out.println("用户" + userList.get(i).getId() + ":" + userList.get(i).getLikeList().toString());

}

//计算用户之间的相似度【余弦相似性】

int recommendUserId = userID.get(recommendUser);

for (int j = 0;j < sparseMatrix.length; j++) {

if(j != recommendUserId){

System.out.println(idUser.get(recommendUserId)+"--"+idUser.get(j)+"相似度:"+sparseMatrix[recommendUserId][j]/Math.sqrt(userItemLength.get(idUser.get(recommendUserId))*userItemLength.get(idUser.get(j))));

}

}

//计算指定用户recommendUser的物品推荐度

for(Integer item: items){//遍历每一件物品

Set<Integer> users = itemUserCollection.get(item);//得到购买当前物品的所有用户集合

if(!users.contains(recommendUser)){//如果被推荐用户没有购买当前物品

// 则进行推荐度计算

double itemRecommendDegree = 0.0;

for(Integer user: users){

itemRecommendDegree += sparseMatrix[userID.get(recommendUser)][userID.get(user)]/Math.sqrt(userItemLength.get(recommendUser)*userItemLength.get(user));//推荐度计算

}

System.out.println("商品"+item+" 对用户 "+recommendUser +"'推荐度:"+itemRecommendDegree);

Sorf sorf = new Sorf(item,itemRecommendDegree);

sorfList.add(sorf);

}

}

Collections.sort(sorfList);

int size = 0;

if(sorfList.size() <5){

size = sorfList.size();

}else {

size = 4;

}

List<Integer> ids = new ArrayList<>();

for (int i = 0; i < size; i++) {

ids.add(sorfList.get(i).getKey());

}

return ids;

}

}

转载于:https://www.cnblogs.com/April315/p/10920423.html

相关文章:

基于S3C4510B的一个简单BSP的开发报告

系统环境 &#xff08;一&#xff09; 硬件环境 CPU&#xff1a;S3C4510B SDRAM:W981216DH 16M FLASH:MX29LV160AB 2M &#xff08;二&#xff09; 软件环境 tornado2.01 for arm&#xff08;AKA的FTP上有tornado2.2需要的可以自己去下载&#xff1a;&#…

Java项目:房屋租赁管理系统(java+SSM+Layui+Maven+Mysql+Jsp)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能包括&#xff1a; 房屋租赁管理系统是一款方便快捷&#xff0c;易操作的租房和各种物业收费的管理系统&#xff0c;该系统官网包含着用户和管理员分类登录&#xff0c;减少了为使用管理员…

sdtz技术组成

发送短信数据库表到第二天就删除前一天的的内容重新建表是用触发器功能实现的 回款、发标、发短信一些核心功能是用windows服务运行在服务器上自动运行的 sql管理中的维护计划就能设置自动备份数据库转载于:https://www.cnblogs.com/zheng510ke/p/4562812.html

13个 ASP.NET MVC 的扩展

ASP.NET MVC设计的主要原则之一是可扩展性。处理管线&#xff08;processing pipeline&#xff09;上的所有&#xff08;或大多数&#xff09;东西都是可替换的。因此&#xff0c;如果您不喜欢ASP.NET MVC所使用的约定&#xff08;或缺乏某些约定&#xff09;&#xff0c;您可以…

javascript实例

数组排序 ①冒泡排序 思路&#xff1a; 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。对每一对相邻元素作同样的工作&#xff0c;从开始第一对到结尾的最后一对。在这一点&#xff0c;最后的元素应该会是最大的数。针对所有的元素重复以上的步骤&#xff…

Ubuntu10.04安装Flash插件

1. 从Adobe下载Flash安装程序&#xff0c;并且解压。 tar -xzvf install_flash_player_10_linux.tar.gz 2. 把解压出来的“libflashplayer.so” 复制到 /usr/lib/mozilla/plugins 目录下。 sudo cp libflashplayer.so /usr/lib/mozilla/plugins 3. 执行以下命令&#x…

Java项目:健身俱乐部管理系统(java+SSM+Mysql+Jsp)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 项目介绍&#xff1a; 基于jspmysqlSpringmybatis的SSM健身房管理系统 运行环境: jdk 1.8 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA都可以 tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可&#xf…

通过代理进行页面传值

A 页面跳转到 B页面&#xff0c;在关闭B页面的时候想将B页面的某些内容回传给A页面 在B页面写代理的相关方法 protocol 控制器的名称 Delegate <NSObject> optional -(void) xxxxxx:(控制器 *) control end interface 控制器 : UIViewController property (weak,nonatom…

Linux系统下如何安装软件包

现在一般是使用 RPM &#xff0c;YUM 和 APT 来管理软件包。软件包常用的也就是&#xff0c;查找软件包&#xff0c;安装&#xff0c;卸载&#xff0c;升级。这几个功能。RPM 比较经典&#xff0c;但是也比较麻烦&#xff0c;尤其是在软件依赖关系上面&#xff0c;有的时…

自己设计大学排名-数据库实践

今天我们来学习以下有关于数据提取以及数据库的一些知识&#xff0c; 我们知道其实数据库是一个非常神奇的存在&#xff0c;它是是按照 数据结构来组织、 存储和管理数据的仓库 我们可以使用它对数据进行储存和管理&#xff01; 下面是有关于sqlite3的学习&#xff0c;SQLite3 …

Windows 和 Linux 应用程序从上到下调用层次比较

刚毕业的时候&#xff0c;做了将近一年的Window下的程序开发&#xff0c;主要用MFC&#xff0c;那是也不明白程序在操作系统角度从上到下的整个调用层次。遇到调用库函数&#xff0c;不明白&#xff0c;就查MSDN&#xff0c;每个月1500行代码左右&#xff0c;那时以为这就是软件…

Java项目:药品管理系统(java+swing+Gui+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a;用户管理、药品库存管理、进销管理、营销管理、药品购入、药品售出、药市信息 系统主页&#xff1a; SuppressWarnings("serial") public class SystemMainView extends JFr…

WEBSHELL跳板REDUH使用说明

原文链接: http://www.fendou.info/network/webshell-proxy-reduh.html reDuh是可以把内网服务器的端口通过http或https隧道转发到本机&#xff0c;形成一个TCP连通回路&#xff0c;用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部端口的工具。 reDuh和LCX类似&…

站立会议(三)

一、会议时间&#xff1a;2014年4月13日 二、会议目的&#xff1a;统计项目进度以及每个人的进度、计划以及问题 三、会议内容&#xff1a; 党云龙&#xff1a; 今天内容 查阅资料&#xff0c;上网搜索&#xff0c;完成API调用&#xff1b; 遇到问题 还是在实现的时候无法阻止…

python celery

celery 一般用于做异步 和定时任务 不过听网上说 celery 坑还是蛮多的&#xff0c;特别定时任务&#xff0c;我们一般用来做定时任务&#xff0c;还有数据导入导出。celery 不支持 redis cluster 集群模式uWSGI 自带了一个简单的 Spooler 可以处理大部分异步任务和周期运行的任…

c语言实现memcpy

今天到I 公司去面试&#xff0c;面试方式比较特殊&#xff0c;没有笔试&#xff0c;就是2 个面试官&#xff0c;一人一句轮番发问&#xff0c;涉及面很广&#xff0c;涉及到操作系统(MMU 、page out 、process/thread 、semaphore 、interrupt), OOP( 多态、design pattern) 、…

Java项目:图书管理系统(java+swing+Gui+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a;借阅列表、图书类别管理、图书馆里、用户管理、借阅管理、关于我们 登录服务类&#xff1a; WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet …

十五天精通WCF——第三天 client如何知道server提供的功能清单

通常我们去大保健的时候&#xff0c;都会找姑娘问一下这里能提供什么服务&#xff0c;什么价格&#xff0c;这时候可能姑娘会跟你口述一些服务或者提供一份服务清单&#xff0c;这样的话大 家就可以做到童嫂无欺&#xff0c;这样一份活生生的例子&#xff0c;在wcf中同样是一个…

MySQL Cluster 日常维护

在前面几篇文章已经详细介绍了MySQL Cluster的搭建&#xff0c;配置讲解。而且相信大家都掌握了基本用法。现在我们来看看Cluster的日常维护。熟悉日常维护&#xff0c;将有助于工作中更好的管理和使用Cluster。 一. 数据备份 相信大家都熟悉mysql的日常备份工具&#xff0c;比…

20165219王彦博《基于Cortex-M4的虚拟机制作与测试》课程设计个人报告

20165219王彦博《基于Cortex-M4的虚拟机制作与测试》课程设计个人报告 一、个人贡献 参与课设题目讨论及完成全过程&#xff1b; 资料收集&#xff1b; 负责环境搭建&#xff0c;代码运行下载&#xff1b; 撰写小组结题报告。 二、设计中遇到的问题及解决方法 1 实验六以太网服…

extern数组与extern指针

数组名代表了存放该数组的那块内存&#xff0c;它是这块内存的首地址。这就说明了数组名 是一个地址&#xff0c;而且&#xff0c;还是一个不可修改的常量&#xff0c;完整地说&#xff0c;就是一个地址常量。数组名 跟枚举常量一样&#xff0c;都属于符号常量。数组名 这个符号…

Java项目:医院管理系统(java+javaweb+jdbc+Mysql+lw)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 登录、注册、用户/管理员(角色)、用户信息管理、科系信息管理、查看所有科系、新增科系信息、删除指定科系、修改科系信息、病房信息管理、病人信息管理、医生类型管理、病人手术管理…

Mongodb地理空间索引

1、索引&#xff1a; 建立索引既耗时也费力&#xff0c;还需要消耗很多资源。使用{"bakckground":true}选项可以使这个过程在后台完成&#xff0c;同时正常处理请求。如果不包括background 这个选项&#xff0c;数据库会阻塞建立索引期间的所有请求。阻塞的做法会让索…

Juniper的路由器、防火墙、交换机如何恢复出厂配置

Juniper的路由器、防火墙、交换机如何恢复出厂配置有些时候&#xff0c;在正常的业务使用中&#xff0c;逐条删除配置的内容很繁琐&#xff0c;我们可以使用恢复出厂配置&#xff0c;清空设备中的配置&#xff1b;还有的时候&#xff0c;由于设备配置异常&#xff0c;可以使用恢…

【转载】标准输入输出、错误输出、重定向标准输出

【转载】标准输入输出、错误输出、重定向标准输出 原文&#xff1a;标准输入输出、错误输出、重定向标准输出 再来看看 >& 操作符&#xff1a; 重定向操作符描述 > 将命令输出写入到文件或设备&#xff08;如打印机&#xff09;&#xff0c;而不是命令提示符窗口或…

(Interrupt Latency) 中断延迟

中断延迟 (Interrupt Latency) 中断延迟 是指从硬件中断发生到开始执行中断处理程序第一条指令之间的这段时间。 也就是&#xff1a; 计算机接收到中断信号到操作系统作出响应&#xff0c;并完成换到转入中断服务程序的时间。 不严格地&#xff0c;也可以表述为&#xff1a…

Java项目:干活管理系统(java+SSM+Jsp+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 前台用户和后台管理员两种角色&#xff1a; 前台用户功能有&#xff1a;发布兼职、发布帖子、查看公告、个人中心、投诉等。 后台管理员功能有&#xff1a;用户管理、兼职管理、帖子管理、聊天管理、广告管…

20135234mqy 实验四

北京电子科技学院&#xff08;BESTI&#xff09; 实 验 报 告 课程&#xff1a;java程序设计 班级&#xff1a;1352 姓名&#xff1a;mqy 学号&#xff1a;20135234 成绩&#xff1a; 指导教师&#xff1a;娄嘉鹏 实验日期&#xff1a;2015.6…

我的第一张地图报表

一直以来对于地图都很陌生&#xff0c;感觉好强大&#xff0c;可以根据地理位置去分析数据&#xff0c;下面我简单的做了一张地图展示数据的报表。 接下来就简单的说一下设计过程和应该注意的地方 效果&#xff1a;&#xff08;鼠标放在省份区域上&#xff0c;显示该省的数据&a…

SpringBoot第十篇:thymeleaf详解

作者&#xff1a;追梦1819 原文&#xff1a;https://www.cnblogs.com/yanfei1819/p/10931435.html 版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请附上博文链接&#xff01; 引言 SpringBoot 对 Web 的支持&#xff0c;官方推荐的是模板引擎 thymelaf。本章中&…