开发一个图书管理系统,首先需要对此项目进行一个简单的需求分析:

主要功能包括:

  • 图书信息

  • 图书分类

  • 用户信息

  • 用户借阅统计

  • 管理员

  • 管理员权限

接下来可以进行数据库的设计,在这里我提供一个简单的数据库表结构,如有不合理以及需要补充的可以下方进行补充。

字段:

自增id(主键)、书名、作者、出版社、简介、缩略图、出版日期、ISBN(国际标准书号(International Standard Book Number),专门为识别图书等文献而设计的国际编号)、图书分类、删除标记。

字段:自增id(主键)、分类名称、分类编号、父级分类编号。

字段:

自增id(主键)、用户名、密码、添加时间、状态、借阅次数、归还次数。

字段:

自增id(主键)、借阅人、借阅书籍编号、借阅时间、归还时间、履约情况记录、备注。

字段:

自增id(主键),用户名,密码,创建时间,状态,所属角色。

字段:

自增id(主键,角色id),角色对应的权限。

字段:

自增id(主键),权限名称,权限所能访问控制器集合。

以上则是对图书管理系统的简要表结构设计。


数据库建立之后接下来就是系统的开发。

题主希望用到技术为 python+myqsl ,pyhon 的 web 框架有:Django、Flask、Tornado。

这里可以推荐 python 的 Flask ,因为非常轻便,学习周期短,效率高。

数据层面的话这里推荐使用原生的 sql 语句,方便简单。题主可以自己封装一个 mysql的操作类,前提是安装好 python 的 myql 驱动。

前端方面可以考虑使用 adminLTE ,是一个开源的后台管理系统,下载即用,非常方便。

下面是 adminLTE 的后台管理界面:

推荐题主把系统设计为前后端分离的模式,即:使用 Flask 写 API 接口,使用 Jquery 请求接口获取数据,然后渲染页面。当然如果希望用到新的技术可以使用 。

题主如果对底层技术比较感兴趣的话可以使用 Tornado 这个异步的服务器框架,此框架采用异步非阻塞IO的方式,性能非常高。包括HTTP服务器、WebSocket服务等,这里只使用其 HTTP 服务即可。当然学习成本也随着提升。

如果对大家有帮助,可以点赞以示支持!

以上则是对图书管理系统的简要设计,以及采用技术推荐,如有不同意见或者需要补充的,欢迎大家评论指正。对IT行业感兴趣的或者想通过自学进入软件开发行业的欢迎关注,可以提供学习上的帮助。

(私信“PHP”,“Python”,“Java”可以免费提供学习资料哦~)

JAVA 与 .NET等 编程语言

  • 它们是业务功能编程实现工具;

  • 处理业务逻辑有先天性优势;

  • 编程语言类库中拥有丰富的系统函数,开发效率高;

  • 尤其是在SOA项目,大型综合系统的开发中处于有利地位;

  • JAVA 与 .NET都提供了针对数据库的驱动程序,他们操作数据库是通过驱动程序中转操作指令的,反应当然要慢一拍。

SQL编程语言

  • SQL server 与 MySQL,Oracle,MongoDB, Redis 等数据库

  • 它们是数据库

  • 前三个是关系型数据库,一般用来存储业务数据,提供读写功能;

  • 后2个是非关系型数据库,人称NoSQL数据库,一般用来作为缓存服务器的软件环境, 数据是以 JSON格式存储的;

  • 数据库本质是提供了 增加,修改,删除,查询功能的一个载体,好比是一个智能存储的仓库

  • SQL脚本是专门针对数据库操作的编程语言,本质上 提供4种操作引擎: 增加,修改,删除,查询

大数据处理

  • 如果有这方面的业务,如果是 java方向,Hadoop, Spark, Hive 将是操作利器;

  • 如果是 .net 方向,则 SSIS, SSRS, SSAS 将是利刃。

总体来说, 第一类 编程语言 好比 SUV,擅长于跑高速, 跑的又快又远;第二类编程语言,好比 挖机,擅长于 挖地基,挖墙角,挖的深打的牢。

当你要去外地娶亲时,少不了 SUV; 当你要回老家做房子时,少不了 挖机。

希望对你有所帮助. 谢谢.

(结束)

从编程语言的层面来说,选择什么数据库并没有什么明显的区别,数据库的选择更应该考虑业务类型和业务规模。如果从学习的角度出发,那么Java数据库最好选择MySql数据库,原因有以下几点:

第一,Java与MySql同属于Oracle公司,在整合程度上MySql更适合Java语言。早在多年前Sun公司还没有被Oracle收购的时候,Sun公司为了打造Java的生态圈而花费巨资收购了MySql数据库,所以MySql与Java的整合是从设计层面就开始考虑的问题,这是一个天然的优势。

第二,MySql数据库应用比较广泛,尤其是在Java开发体系中(Web开发领域)。虽然对于编程语言来说,使用何种数据库的影响并不大,但是在实现层面,不同数据库还是有较大的区别。目前大量的Java平台都采用MySql数据库,这说明使用MySql有很多成熟的方案。目前,很多云计算平台自身就整合了MySql的解决方案,使用起来非常方便,我带的移动互联团队就是采用了MySql的云计算解决方案。

第三,MySql是开源的。MySql的开源特性不仅让使用者节省了大量的费用,同时也可以针对MySql做深层次的性能优化,目前很多大型电商平台都会对MySql做深度优化以满足自身的业务需求。

MySql简单易用,学习起来也非常方便,所以建议Java程序员从学习MySql开始。

我使用Java语言的时间比较久,我在头条上也写了关于Java操作数据库的文章,感兴趣的朋友可以关注我的头条号,并查看相关文章。

如果有Java编程方面的问题,也可以咨询我。

谢谢!

十天时间够了,没接触过面向对象编程也没关系。系统学习肯定是来不及了,建议简单学习一下java语法,面向对象思想,servlet jdbc等基础知识,就可以着手编码了,从网上找几个javaweb开发管理系统的案例或视频教程,跟着做,遇到问题google baidu 就差不多了。

书籍的话,个人觉得没必要。如果有时间系统学习推荐俩本。

java基础:《疯狂java讲义》这是我大学看的一本书,内容比较简单,适合初学者。

java web:《Java Web整合开发 王者归来》也是适合初学者的一本书,知识体系比较完整,也适合学习框架的读者。

目前大部分研发团队都要求业务逻辑用代码来实现,SQL操作往往都是基本操作。用SQL来表现业务逻辑,也就是通过存储过程的方式来表现业务逻辑是比较传统的开发方案。

在C/S时代很多逻辑的实现都是通过SQL来实现的,主要原因是业务规模和部署方式决定的。早期的C/S编程时代往往都是非分布式环境下的开发,而且大多数情况下并不需要考虑移植性问题,此时采用SQL来完成业务逻辑是比较方便的处理方式。

采用存储过程来完成业务逻辑最大的好处是性能会比较好,但是这也取决于业务规模的大小,如果业务规模过大,那么性能会下降的比较厉害。而早期的数据存储规模比较小,所以采用存储过程的方式是比较方便的。

目前的Web开发已经到了大数据时代、云计算时代,业务类型和业务规模都有了较大的变化,尤其是大数据时代下NoSql数据库的广泛采用,使用SQL语句来完成业务逻辑的情景就更少了。而且,目前的程序大部分都是分布式方式,采用Sql存储过程的方式来处理业务逻辑会非常麻烦,而且会导致整个项目的移植性和可读性都严重下降。

目前在传统企业的开发团队中采用Sql来处理业务逻辑的情况比较常见,因为大部分传统企业的数据库还依然是关系型数据库,而且不存在移植性要求,这种固定场景下的开发是完全可以使用Sql来处理业务逻辑的。未来使用Sql处理业务逻辑的情况也有一定的应用场景,所以学习存储过程的编写还是有一定必要的。

我的研究方向是大数据和人工智能,目前也在带大数据方向的研究生,我会陆续在头条上写一些关于大数据方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。

如果有大数据方面的问题,也可以咨询我。

谢谢!

转载请注明出处文化教育网 » python+mysql做一个图书管理系统?

hive导数据到mysql 自增主键出错_python+mysql做一个图书管理系统?相关推荐

  1. hive导数据到mysql 自增主键出错_老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”...

     前言"又要开始新项目了,一顿操作猛如虎,梳理流程加画图.这不,开始对流程及表结构了.我:吧啦吧啦吧啦 --老大:这个建表为啥还设置个自增 id ?直接用流水号(用户号/产品号)当主键不就行 ...

  2. hive导数据到mysql 自增主键出错_面试官:MySQL表设计要注意什么?

    本文公众号来源:孤独烟 作者:孤独烟 引言 这篇文章的很多问题,都是面试中实打实会问到的! 比如 OK,具体有下面这些问题 1.为什么一定要设一个主键? 2.你们主键是用自增还是UUID? 3.主键为 ...

  3. mybatis mysql自增主键_mybatis 自增主键配置

    mybatis 自增主键配置 mybatis自增主键配置(?) mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同.基本上经常会 遇到的就是 Oracle Seque ...

  4. mysql自增主键和mybatis自增主键不一致问题(已解决):

    mysql自增主键和mybatis自增主键不一致问题(已解决): 在插入数据前,先进行查询主键 <insert id="insertSelective"><sel ...

  5. 美团面试:MySQL 自增主键一定是连续的吗?

    美团问数据库比较多,分享一位读者面试美团遇到的关于 MySQL 自增主键的问题. 下面是正文. 众所周知,自增主键可以让聚集索引尽量地保持递增顺序插入,避免了随机查询,从而提高了查询效率 但实际上,M ...

  6. mysql自增主键设置

    mysql自增主键设置 在数据库应用中,经常希望在每次插入新纪录时,系统自动生成字段的主键值.可以通过为表主键添加AUTO_INCREMENT关键字来实现. 默认情况下,在MYSQL中AUTO_INC ...

  7. mysql自增主键的返回

    1.Mybatis的基础配置 https://blog.csdn.net/qq_43163943/article/details/110261144 2.Mybatis自增主键的实现 执行顺序是先插入 ...

  8. Mysql 自增主键重复的问题

    问题描述 MySQL Bugs: #199: Innodb autoincrement stats los on restarthttps://bugs.mysql.com/bug.php?id=19 ...

  9. mysql自增主键返回---创建成功后返回用户的ID

    mysql自增主键返回 查询id的sql SELECT LAST_INSERT_ID() 通过修改User.xml映射文件,可以将mysql自增主键返回: 如下添加selectKey 标签 <! ...

最新文章

  1. STM32 逐次逼近寄存器型(SAR)模拟数字转换器(ADC)
  2. Mycat原理、应用场景
  3. Three.js中使用材质覆盖属性
  4. vue项目打包到腾讯云服务器全过程
  5. [POI2002][HAOI2007]反素数
  6. 【Servlet】response对象给用户返回数据
  7. netflix 工作原理_Netflix如何在屏幕后面工作?
  8. Android官方开发文档Training系列课程中文版:网络操作之网络管理
  9. 蚂蚁集团高级架构师郭援非:分布式数据库是金融机构数字化转型的最佳路径...
  10. php 导出excel 2007,使用PHPExcel导出Excel表
  11. 自己动手,在macOS High Sierra中编译一个可debug的JDK
  12. 【高数】数学符号及读法大全and数学运算符号及含义
  13. el-menu菜单下划线解决办法
  14. element-ui时间选择器如何把今日日期改为“至今”
  15. 纯css实现向上箭头动画显示
  16. 通过百度人脸对比API进行人脸对比
  17. 阿里云合作伙伴返点和代理商返点的差异
  18. 使用数据挖掘软件Rapidminer进行关联规则分析
  19. sw2urdf使用探索
  20. Apache-POI 设置excel单元格样式字体等

热门文章

  1. 求两个数之间的水仙花数.c语言,求水仙花数(C语言/Java)
  2. php唯一索引,索引唯一性扫描(INDEX UNIQUE SCAN)
  3. mysql-generator用法_【原创】MyBatis Generator使用小记
  4. java的robot一直按住某个键_SHIFT键在CAD中使用技巧
  5. mybatis初始化mysql_SimpleMybatisMysql
  6. java emmt插件_Emmet缩写语法
  7. android studio 中使用lambda表达式
  8. pandas 不要编号 加一行_文科生带你学Python|Pandas读取数据
  9. jmeter mysql driver_jmeter测试mysql数据库之JDBC请求
  10. 最新linux 5,Linux 5.5 正式发布