专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

软件开发时数据在后台是如何保存的_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 15:58:07       共计:3630 浏览
软件开发时数据在后台是如何保存的?

数据的存储方式有很多种。根据不同的需求可以做出不同的选择。我们以开发一个问答系统为例,来介绍一下他们的不同使用场景和方法。

关系型数据库

利用关系型数据库比如MySQL,是最常用的一种方式。刚开始开发一个简单的问答系统。你就可以建几张表:

上面的实体关系图是我刚用PlantUML画的一个简化版,帮助理解。源代码在这里:

@startuml!define Table(name,desc) class name as "desc" << (T,#FFAAAA) >>!define primary_key(x) <b>x</b>!define unique(x) <color:green>x</color>!define not_null(x) <u>x</u>hide methodshide stereotypes' entitiesTable(users, "users\n(存储用户信息)") {primary_key(id) INTEGERnot_null(unique(username)) VARCHAR[32]not_null(password) VARCHAR[64]age SMALLINTgender SMALLINTbirthday DATETIME}Table(questions, "questions\n(存储问题信息)") {primary_key(question_id) INTEGERnot_null(unique(user_id)) INTEGERtitle VARCHAR[255]content VARCHAR[2048]creationTime DATETIMEupdateTime DATETIME}Table(answers, "answers\n(存储问题的答案)") {primary_key(answer_id) INTEGERprimary_key(question_id) INTEGERnot_null(unique(user_id)) INTEGERcontent VARCHAR[2048]creationTime DATETIMEupdateTime DATETIME}' relationships' one to may relationship, 一对多的关系users --> questions : "1个用户提了多个问题"users --> answers : "1个用户写了多个问题的答案"questions --> answers : "1个问题有多个答案"@enduml

我是用VSCODE的插件画的:

设计好表之后就可以在MySQL里面建表。

如果你用Java做,可以利用JPA框架做数据存储。简单的可以利用MyBatis。MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与SQL语句关联起来,简单、容易上手。建议刚开始可以利用这个练练手。

复杂一些的可以利用Hibernate。Hibernate是一个开放源代码的对象关系映射框架,如果你喜欢面向对象的编程,那就可以利用Hibernate把你设计的对象映射到数据库的各个表,方便存取。但是这个相对复杂,学习起来比较花时间。

NoSQL

你也可以利用NoSQL数据库,也非常简单。比如mongodb. mongodb是一个基于分布式文件存储的开源数据库系统。你可以把上面的表都设计成JSON文档,直接存储在mongodb里面。

全文检索 elasticsearch

如果要支持全文检索,你需要用Elasticsearch。Elasticsearch是一个分布式的全文搜索引擎。

缓存 Redis

如果你的用户量大了,要提高系统的访问速度。你需要用到各种缓存技术比如redis。

消息系统 Kafka

如果你的系统发展壮大了,又开发出很多其他的系统。比如推荐系统,审核系统。你的各个系统之间需要消息通讯。你还需要用到消息系统 Kafka。

我有几个视频,利用动画来演示和解释Kafka的原理,欢迎观看和评论。

分布式存储 Hadoop HDFS

随着你的用户的增加,内容的增加,你的网站每天产生几百GB甚至几百TB的数据。你就需要用到分布式存储 Hadoop。

我也分享了一些关于Hadoop的视频,利用动画来演示Hadoop的原理实现,欢迎关注。

总结

根据系统的不同需求和不同发展阶段,可以选择不同的存储方式。如果是一开始为了验证自己的产品的想法,也就是做PoC (prove of concept),那就可以选择简单易用的,比如MySQL,MongoDB等。等将来系统发展了,根据需要再升级存储方式,比如ES,redis,kafka还有hadoop。

上面说的各种存储方式都支持各种编程语言,Java,Python,Ruby,NodeJS等等。简单易用。

如果是个人学习技术,建议从简单的开始,做一个小的项目,比如我给的问答的例子。慢慢体会不同的技术的不同使用方法和应用场景。

希望可以帮助到你。有问题可以在评论区提问,我会一一解答。

本人,@小马过河Vizit,专注于分布式系统原理和实践分享。希望利用动画生动而又准确地演示抽象的原理。

关于我的名字。小马过河Vizit,意为凡事像小马过河一样,需要自己亲自尝试、探索才能获得乐趣和新知。Vizit是指Visualize it的缩写。一图胜千言,希望可以利用动画来可视化抽象的原理。

欢迎关注,点赞! 谢谢支持。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:ZKEYS公有云管理系统可以管理虚拟主机吗_数据库 | ·下一条:java程序员薪资多少_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有