2010-07-05 107 views
0

我正在开发一个关于书籍的网络应用程序。我们都知道,书籍有不同的类别。所以,这个类别是一个数字序列的基础,例如,200 =计算机相关,800 =历史。每本书仅限于一个类别。哪种方法来存储静态数据更好?

这是问题。我有一个类别列表,它可能会在未来扩展。例如,新技术出现,将创建新类别。那么,我应该如何存储这个类别?在数据库中?或一个简单的XML文件?因为它一直没有改变,所以,我认为它会成为浪费存储在数据库中?你好。

+2

浪费什么? – 2010-07-05 14:01:32

+1

+1给所有使用数据库的人!如果您还将书籍存储在那里,则可以将数据加入并执行诸如“在与计算机相关的”类别中获取所有书籍(SELECT * FROM tblBook WHERE CategoryId = 200)或者给我一本书并告诉我什么类别它是在(选择tblBook.Title,tblCategory.Title'CategoryTitle'从tblBook INNER JOIN tblCategory ON tblCategory.Id = tblBook.CategoryId WHERE tblBook.Id = 1)等等... – Fenton 2010-07-05 14:14:14

回答

4

对我来说,最好的决定是使用数据库进行存储。你不知道随着时间的推移,你的项目会有哪些变化。此外,如果数据进入数据库,您可以轻松更新它们并添加相关的其他信息。但这取决于。你更清楚你有什么样的项目和你使用的是什么技术。

也许XML也是一个不错的选择。您可以相对容易地添加新数据并选择当前的数据,然后在项目中使用它们。

但我的建议是使用数据库。类别不是太多要存储的数据。它更加灵活和强大。

2

如果您认为将来会添加新类别,它不是静态的,应该可能存储在数据库中。由于它在应用程序运行时不会不断变化,因此您可以让应用程序在启动时将此数据缓存在内存中,以避免不断查询数据库中的此列表。

1

我看不出有效的理由不使用数据库,特别是如果你已经做了一些其他的数据。这样的小桌子很常见。 如果您想完全避免数据库访问,文件存储(如XML或文本文件)可能是不错的选择。

1

如果您在应用程序中使用其他存储的数据库,然后将其存储在查找表中。您可以缓存查询以获取列表,以便在没有不必要的行程前往数据库时,如果这就是您所说的浪费。所以我会根据你使用的是否是仓库来做出决定。

1

将其存储在数据库中。如果你不这样做,那将浪费普通磁盘空间。如果你谈到“有些类别会不时增加”,那么数据量就没有真正的增长。请记住,大公司/网站/应用程序/数据库...存储数十亿行数据,所以如果您存储您的类别,这将是没有问题的。这样,应用程序就可以更容易地“与SQL一起工作”来进行数据检索,就好像XML也是一样。

0

您应该将类​​别存储在关系表中以确保您的约束有效(在这种情况下,每本书中的一个类别是正确的)?

在存储或成本(查询性能)方面您不会遇到太多浪费。事实上,我很肯定你会希望按照他们的类别查询书籍,所以这是一个合乎逻辑的设计。

相关问题