Code Monkey home page Code Monkey logo

hahu's Introduction

Hahu

  • 1、本项目是参照知乎做的一个简易版的问答网站。
  • 2、后台采用Spring、SpringMVC、MyBatis、FreeMarker等技术,数据库用到MySQL、Redis,前端用到jQuery、artTemplate。
  • 3、本项目采用Maven构建,导入后需要:修改df.properties中的mysql.password,redis.password,mail.password为您个人的配置;修改com/fc/util/MyConstant.java,将七牛云的相关配置改为您的个人配置。
  • 4、如有项目导入的问题,可以联系我QQ:928532612。
  • 5、此项目为初学者练手项目,由于时间仓促,前端的代码可能有些杂乱。有什么错误希望大家能指出,在此感谢。 1、用户:user(mongo)

//注册后自带属性

email 邮箱 password 密码 avtive_state 激活状态 activate_code 激活码

//用户本身可以编辑的属性

username 用户名 gender 性别 simple_desc 一句话介绍 avatar_url 头像路径 position 居住地 industry 所在行业 career 职业经历 education 教育经历 full_desc 个人简介

//其它衍生属性

like_count 获得点赞数 collect_count 获得收藏数

following_count 关注了多少人 follower_count 关注者多少人

scan_count 个人主页浏览次数

create_time 注册时间

2、话题:topic(mysql)

topic_id 话题id topic_name 话题名称(unique) topic_desc 话题描述 topic_image 话题图片url

3、问题:question(mysql)

title 问题标题 content 问题内容 topic_id_list followed_count 问题被关注者 scaned_count 问题浏览次数 create_time 问题被提问时间

user_id 提问用户

4、问题评论:question_comment(mysql)

comment_id 评论id content 评论内容 at_user_id 回复谁 like_count 被点赞次数 create_time 评论时间

question_id 评论在哪个问题下 user_id 评论用户

5、回答:answer(mysql)

answer_id 评论id content 回答内容 liked_count 点赞数 create_time 回答时间

question_id 回答的问题id user_id 回答用户id

6、回答评论:answer_comment(mysql)

comment_id 评论id content 评论内容 at_user_id 回复谁 like_count 被点赞次数 create_time 评论时间

answer_id 评论在哪个回答下 user_id 评论用户

7、收藏夹:collection(mysql)

collection_id 收藏夹id collection_name 收藏夹名称 create_time 创建时间 update_time 更新时间

user_id 收藏夹用户id

8、消息:message(mongo)

message_id 消息id user_id 所属用户id message_type 消息类型(1、被关注;2、被点赞;3、评论相关;4、回答问题) son_type 子类型

from_user_id 哪个用户的操作产生的消息

question_id 问题id

answer_id 回答id

comment_id 评论id

===============================================================================================================

一、几种行为:

1、基础行为

提问、回答

2、收藏

收藏回答

3、关注

关注人、关注话题、关注问题、关注收藏夹

4、点赞

点赞回答、点赞评论(问题下、回答下)

二、Feed流推送内容:

关注的人提问了某问题 关注的人回答了某问题

关注的人关注了某问题

关注的人点赞了某回答

三、消息种类:

1、被关注消息

XXX 关注了你 1.1---被关注(用户id)

2、被点赞消息

获得 1 次赞同: XXX 来自 XXX 2.1---赞回答(用户id,问题id,回答id)

XXX 赞了你在 XXX 下的评论 2.2---赞问题下的评论(用户id,问题id,问题评论id)

XXX 赞了你在 XX 中 XXX 的回答下的评论 2.3---赞回答下的评论(用户id,问题id,回答id,回答评论id)

3、评论消息

XX 评论了你回答 XXX 3.1---评论回答(用户id,问题id,回答id) XX 回复了你在 XXX 问题下的评论 3.2---回复问题下的评论(用户id,问题id,问题评论id) XX 回复了你在 XXX 问题回答下的评论 3.3---回复回答下的评论(用户id,问题id,回答id,回答评论id)

4、回答问题消息

XXX 回答了 XXX 4.1---提问的问题有新回答(用户id,问题id,回答id)

四、Redis设计

1、收藏

collection_id:collect --> set(answer_id)

例如, 123:collect --> set(1,2,3,4)。 表示id为123的收藏夹,收藏了id在(1,2,3,4)中的回答。

2、关注

user_id:follow_people --> set(user_id) user_id:followed_people --> set(user_id)

例如, 123:follow_people --> set(1,2,3,4)。 表示id为123的用户,关注了id在(1,2,3,4)中的用户。

123:followed_people --> set(1,2,3,4)。 表示id为123的用户,被id在(1,2,3,4)中的用户关注。

user_id:follow_topic --> set(topic_id);某用户关注了哪些话题。 topic_id:followed_topic --> set(user_id);某话题被哪些用户关注。

user_id:follow_question --> set(question_id);某用户关注了哪些问题。 question_id:followed_question --> set(user_id);某问题被哪些用户关注。

user_id:follow_collection --> set(collection_id);某用户关注了哪些收藏夹。 collection_id:followed_collectoin --> set(user_id);某收藏夹被哪些用户关注。

3、点赞

answer_id:liked_answer --> set(user_id);某回答被哪些用户点赞。 question_comment_id:liked_question_comment --> set(user_id);某问题下的评论被哪些用户点赞。 answer_comment_id:liked_answer_comment --> set(user_id);某回答下的评论被哪些用户点赞。

hahu's People

Contributors

dcg123 avatar fanchaoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.