2013-06-27 162 views
-1

我正在为图书馆创建应用程序。我需要创建一个数据库,其中包含有关图书馆中所有图书和图书馆成员的详细信息。我需要维护一张表格,将一个人与他读过的书籍联系起来。每本书都有一个唯一的ID以及成员。我需要跟踪该人拍摄的每本书,并根据他的兴趣推荐书籍。我也必须跟踪该人完成一本书所需的时间。我只有关于数据库的基本知识,而且也只涉及MySQL。如果我是对的,你不能在MySQL中有一个字段的多个值。我想创建一个表格来映射他/她已登陆的书籍。但是这种方法的问题在于桌子的大小无法控制地增加。有没有其他的方法可以让我的数据库变得更简单?我需要频繁地搜索数据库中的内容。所以表格必须尽可能小。如何设计图书馆应用程序

如果我的要求不是由它来完成的,我还准备好学习MySQL以外的任何其他语言。

+0

图书馆无法使用[Koha](http://www.koha.org/)等现有的图书馆自动化软件吗? –

+0

我相信koha基于perl,是一个基于web的软件。我创建的库软件基于java,并且有几个自定义功能需要添加。我对perl知之甚少。所以不能够基于koha调试或提供对图书馆系统的支持。 – ADC

回答

0

标准方法确实是创建一个将人员映射到书籍的“连接”表。这样的表可能有很多行,但每行只能包含几列 - 人员ID,书籍ID,借出时间戳,时间戳已完成。

拥有数百万行的MySQL表并不罕见。别担心。确保索引个人ID和书籍ID,你会没事的。

+0

谢谢你的回复。但我还有一个问题。如果我创建的数据库包含数以百万计的图书,并且同样大量的人不会减慢搜索和检索过程,即使我索引了个人ID和书籍ID?如果我错了,请原谅我。 – ADC

+0

当然,可能。如果有数百万本书和数百万人,并且每个人都借用每本书,那么PersonBook映射表可能有数万亿行。但这可能不会发生。索引将大大加快搜索速度。最重要的是,如果有很多书人关系,你会以这种或那种方式存储很多数据。将它们作为单独的行存储在一个表中(而不是连接成单个条目或某些类型),这使MySQL能够帮助您快速搜索。 –