SQLITE数据库设计

SQLITE数据库设计,第1张

按标准的范式拆出来应该是基本信息表、标签表、和信息ID、标签ID表,但是跨表效率很低,没必要。

一般的做法,可以在基本信息后面加一个标签列,里面存储多个标签,用空格和逗号分隔;

在标签表中,同时记录多个基本信息ID,也用空格和逗号分隔;

增添基本信息或标签时,同时维护2个表,

这样修改速度不快,但是查询效率不错.

SQlite是关系型数据库。

SQlite是D.RichardHipp建立的公有领域项目,作为一款遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

它能够支持Windows/Linux/Unix等等主流的 *** 作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。

工作原理:

不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。

这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它简单的设计是通过在开始一个事物的时候锁定整个数据文件而完成的。

建议全改英文,不然以后可能吃苦

用户表里面不应该有权限和状态,应该单独建表

只有单一字段的表不如不建,感觉是过早优化性能,比如书类、图书状态,直接插入一个字符串哪里不行?

考虑一下图书管理要精确到单本还是类别,比如同一个ISBN的要区分哪本吗?如果不区分,图书的主键估计可以直接用ISBN了

其他还有不少问题,但没时间给你分析了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6922070.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存