请注意,如果我不想使用数据库。
我正在学习Unix网络编程。我把我的大学图书馆所有的书单都列在了分开的txt文件中。例如,'b'开始书籍存储在b.txt中。所有a-z书数约为100万条记录。一本书的名称和详细的其他信息。
现在我想做一个程序来提供图书清单的查询服务,例如,给一个书名,它可以返回这个bool的详细信息是否存在。
所以我需要先构建一个模块来获取查询功能。
然后编写服务器端以调用查询模块并获取结果并将结果发送到客户端模块。
我的问题是,如果我不使用数据库。如何使用c / c ++实现查询模块,只需首先找到第一个字母,例如,H
开始书名应该在H.txt
或H1.txt
和H2.txt
中找到,使用fopen
打开文件,然后逐行阅读,然后使用strFind
,strCmp
类似函数与查询的书名进行比较,如果有,则返回结果。我只是认为这是一个耗时的事情,并没有意识到使用。如果有任何这样的查询系统可供参考,不使用数据库,但可以及时忍受?
答案 0 :(得分:1)
有几种选择。最便宜的选择(=低开发时间,低维护,低硬件要求),IMO,是在一个链接到所有数据文件的单独站点上创建一个html页面。然后,您设置另一个使用google.com搜索该网站的页面。然后你只需告诉谷歌网络蜘蛛索引你的网站。这样,您可以通过最少的工作获得出色的性能但是......你没有对任何C进行编程。
使用C的简单解决方案:
按照自己的建议做。如果有大量可用于文件缓存的内存,除非负载变高,否则性能不会太差。 由于您应该将搜索委托给工作线程,因此仍然需要与解决方案的其余部分进行一些工作。
使用C:
的中间解决方案找到第三方搜索引擎并将其与您的网络代码集成。
使用C:
的高级解决方案实施您自己的搜索引擎。
答案 1 :(得分:0)