现在涉及到构建后台数据库表,问题是这样的,有上千个词条,每个词条有上百个历史版本,而且可能涉及到不定期的增加历史版本的问题。怎么构建可以灵活支持以后插入新的数据就成为了一个问题。
1、最简单的想法就是把数据写在一个表中:
列:page_id(词条的id)、revision_id(词条版本的id)、text(词条的内容)
但是这样的话,表太大,现在我抓取了截止到2011年4月19号的所有英文高质量词条,共3251个。每个词条有500个历史记录(我现在想的是,500个记录会不会太多,主要是我后面分析数据的时候难度可能会增加,所以我准备减少到200个记录,最后看实验结果了。。。唉。)
2、分表,每500个词条在一个表中。
列:page_id(词条的id)、revision_id(词条版本的id)、text(词条的内容)
与第一个没什么区别,就是把大表搞小了而已
3、今天看了看wiki本身的数据库表的设计。。它的数据比我做实验的要大多了,数据库表中的关系也要复杂多了。不过也挺有收获的,最后决定我的数据库表的采用和它一致的方法。只是我的简单多了。。只涉及三个表。
(1)表page
列:page_id(词条的id)、page_name(词条的名称)
(2)表revision
列:revision_page(词条的id)、rev_text_id(词条历史版本的id)、rev_user(词条历史版本的作者)
(3)表text
列:text_id(词条历史版本的id)、text(历史记录)
----------------------------------------------------------------------------------
当然这只是表设计的一部分。表中的列没有写全。主要是记录设计的思想。
分享到:
相关推荐
《MySQLDGTool数据库表设计文档自动生成工具详解》 MySQLDGTool是一款专为MySQL数据库设计的文档生成工具,它能够帮助开发者快速、高效地自动生成数据库表设计文档,极大地节省了在项目初期进行数据库设计和后期...
《Screw:数据库表结构文档工具的全面解析》 在软件开发过程中,数据库表结构的管理与文档化是一项至关重要的任务。它可以帮助团队成员更好地理解数据模型,提高协作效率,减少错误。Screw是一款专为此目的设计的轻...
“这里是七种元素交汇的幻想世界“提瓦特”。在遥远的过去,人们藉由对神灵的信仰,获赐了驱动元素的力量,得以在荒野中筑起家园。五百年前,古国的覆灭却使得天地变异……如今,席卷...肝了两天两夜的一个数据库课设。
在构建一个wiki知识库系统时,数据库设计是至关重要的步骤,因为它决定了系统的数据存储、查询效率和整体架构的稳定性。本项目使用MySQL作为数据库管理系统,MySQL因其高效、稳定和广泛支持而成为许多web应用程序的...
Wiki百科离线数据库查看器 WikiTaxi is an offline reader and browser for Wikipedia and MediaWiki wikis. Run WikiTaxi.exe to display usage instructions. For more information, user support, and new ...
致远OA A6 createMysql.jsp 数据库敏感信息泄露漏洞描述致远OA A6 存在数据库敏感信息泄露,攻击者可以通过访问特定的URL获取数据库账户以
1. **HDWiki安装说明.pdf**:这份文档应该详细阐述了HDWiki的安装步骤,包括系统需求、环境配置、数据库设置、文件上传等关键环节。用户可以根据指南逐步操作,将wiki系统部署到自己的服务器或本地环境中。 2. **...
这个系统基于PHP开发,无需数据库支持,这使得它易于安装和维护,尤其适用于那些资源有限或对数据库操作不熟悉的小型环境。 在DokuWiki的核心特性中,其文本格式化规则值得一提。它采用简单的Markdown语法,使得...
DokuWiki 是一个容易使用,用途多样的开源 Wiki 软件,并且不需要数据库。它因简洁易读的语法受到用户的喜爱。而容易维护、备份和整合则使它成为管理员的最爱。内置的访问控制列表和认证连接器使 DokuWiki 在企业...
在本项目中,作为数据存储的后端,SQL Server提供了稳定、高效的数据库服务,可能包含了Wiki页面内容、用户信息、版本历史等数据表。 6. **源码参考**:项目提供的开源代码是学习和理解上述技术实际应用的好材料。...
### Oracle数据库的游标学习总结 #### 一、引言 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集。通过游标,我们可以逐行地读取查询结果,这对于复杂的业务逻辑处理非常有用。本文将详细介绍Oracle...
数据库课程设计 基于javaweb和mysql的简易原-神wiki - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载...
DokuWiki是一个开源wiki引擎程序,运行于PHP...DokuWiki不需要数据库,直接采用文本文件直接存储。 DokuWiki的新近版本完全支持UTF-8编码保存内容,因而支持正文中的中文及多语种输入。但文章标题的中文化支持不好。
ADODB的是一个PHP数据库抽象库,目前还有...很多的知名网站如ACID, Zikula/PostNuke,Xaraya, phpWiki, Mambo, PHP GACL, TikiWiki, eGroupWare and phpLens都使用了ADODB抽象层来操作数据库,足月看出ADODB非常受欢迎。
DokuWiki则是一款开源的、无需数据库的wiki系统,适合团队协作和知识库的构建。它拥有强大的搜索功能,能够方便地对整个wiki进行全局搜索,并且支持集中管理文档,便于版本控制和历史记录查看。然而,DokuWiki的内置...
简洁好用的数据库表结构文档工具,基于 SpringBoot3 开源IDaas/IAM平台,支持OAuth2.x、OIDC、SAML2.0、JWT、CAS等SSO标准协议,实现用户全生命周期的管理、统一认证和单点登录。
"电商底层表"则是指支持电商平台运行的基础数据库和数据结构。这些表格通常包含商品信息、订单详情、用户行为记录等关键数据,它们是进行数据分析的基础。通过对底层表的了解,可以设计出更高效的数据提取和处理流程...
基于Asp.net+mysql数据库实现的内容管理系统源码(可搭建论坛、博客、内容社交、wiki等).zip基于Asp.net+mysql数据库实现的内容管理系统源码(可搭建论坛、博客、内容社交、wiki等).zip基于Asp.net+mysql数据库实现的...
4. **MySQL数据库**:你需要了解如何创建数据库表,定义数据结构,以及使用SQL语句进行CRUD(创建、读取、更新、删除)操作。同时,还需要熟悉JDBC连接池,如HikariCP或C3P0,以提高数据库连接的效率和管理。 5. **...
DokuWiki的设计理念是简洁和易用,这使得它无需数据库就能运行,大大降低了服务器资源需求。同时,它的Markdown语法使得编辑页面变得直观且易于学习,即便是非技术人员也能快速上手。对于那些希望避免复杂数据库配置...