我对数据库设计有疑问。我想为自己的教育创建一个电子笔记本或“Everything Bucket”。我知道有很多替代品,如EverNote或Circus Ponies Notebook,或开源KeepNotes或Red Notebook。但是,就像我说的那样,我想创造自己的学习经验。
我对数据库设计没有多少经验。我的问题是设计应该是什么样的 - 表格,索引等。我正在考虑的方式是
我希望能够按类别,标签,部分标题或全文进行搜索。我想这个程序可以有几个不同的数据库视图,显示类别,标签和标题,所以如果可以快速枚举它们会很好。
那么,鉴于这些愿望,一个好的数据库会是什么样子?我假设将使用SQL数据库,但我没有承诺 - 像Sleepycat Java Edition数据库也可以。
提前感谢您的建议!
答案 0 :(得分:1)
从笔记本开始:
CREATE TABLE `notebook` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 64 ) NOT NULL ,
PRIMARY KEY ( `id` )
)
为笔记本上的任何属性添加字段。然后为其他内容创建类似的表,例如页面,类别,标记等,确保它们都具有唯一的ID。
现在添加这些表的关系 - 一对一,一对多,多对多。页面将具有notebook_id字段,因为它属于笔记本。页面可以属于许多类别,因此请使用page_id和category_id创建链接表。
首先创建完美的数据结构,然后考虑查询它:)希望有所帮助。
答案 1 :(得分:0)
我认为TiddlyWiki或Zim符合您提到的要求。它们不使用SQL风格的关系数据库意义上的“数据库”,但可以搜索,链接,标记,存储图片等。