2010-07-05 2 views
0

Я разрабатываю веб-приложение о книгах. Мы все знаем, что книги имеют разную категорию. Итак, эта категория является базовой по последовательности чисел, например 200 = связанная с компьютером, 800 = история. Каждая книга выходит за рамки только одной категории.Какой подход лучше хранить статические данные?

Вот вопрос. У меня есть список категорий, он может расширяться в будущем. Например, появляются новые технологии, и будет создана новая категория. Итак, что я должен хранить эту категорию? В базе данных? или простой XML-файл? Потому что он не меняется все время, поэтому я думаю, что это станет пустой тратой для хранения в базе данных? thz u.

+2

Отходы чего? –

+1

+1 всем, кто сказал использовать базу данных! Если вы также храните книги там, вы можете присоединиться к данным и сделать такие вещи, как «получить все книги в категории« связанные с компьютером »(SELECT * FROM tblBook WHERE CategoryId = 200) или получить мне книгу и рассказать мне, что категория, в которой она находится (SELECT tblBook.Title, tblCategory.Title 'CategoryTitle' FROM tblBook INNER JOIN tblCategory ON tblCategory.Id = tblBook.CategoryId WHERE tblBook.Id = 1) и так далее ... – Fenton

ответ

4

Для меня лучшим решением является использование базы данных для хранения. Вы не знаете, какие изменения будут последовать за вашим проектом. Также, если данные находятся в базе данных, вы можете легко их обновить и добавить дополнительную дополнительную информацию. Но это зависит. Вы знаете, какой у вас проект и какие технологии вы используете.

Возможно, XML также является хорошим выбором. Вы можете относительно легко добавлять новые данные и выбирать текущий, а затем использовать их в своем проекте.

Но мой совет - использовать базу данных. В категориях не слишком много данных для хранения. Это гораздо более гибкий и мощный.

2

Если вы считаете, что в будущем вы будете добавлять новые категории, это не статично и, вероятно, должно храниться в базе данных. Поскольку он не будет постоянно меняться во время работы приложения, вы можете использовать кеш-память приложения в памяти, когда он запускается, чтобы избежать постоянного запроса базы данных для этого списка.

1

Я не вижу действительной причины не использовать базу данных для этого, особенно если вы уже делаете для некоторых других данных. Такие маленькие таблицы являются общими. Хранилище файлов, например XML или текстовый файл, может быть хорошим выбором, если вы хотите полностью избежать доступа к базе данных.

1

Если вы используете базу данных для другого хранилища в своем приложении, сохраните ее там в справочной таблице. Вы можете кэшировать запрос, чтобы получить список, чтобы не было ненужных поездок в БД, если это то, что вы подразумеваете в результате отходов. Поэтому я бы основал решение на основе того, что вы используете в противном случае для репозитория.

1

Сохраните его в базе данных. Если вы этого не сделаете, это будет пустой тратой обычного дискового пространства. Если вы говорите о том, что «время от времени будут добавляться какие-то категории», то реальный выигрыш в объеме данных невозможен. Имейте в виду, что в базах данных крупных компаний/сайтов/приложений/... хранятся миллиарды строк данных, поэтому это не будет проблемой, если вы сохраните свои категории. Таким образом, приложение будет просто «работать» с SQL для извлечения данных, как если бы они были также XML или похожи.

0

Вы должны хранить категории в реляционной таблице, чтобы гарантировать, что ваши ограничения действительны (в данном случае одна категория для каждой книги, правильно)?

Вы не столкнетесь с большими потерями с точки зрения хранения или стоимости (производительность запроса). На самом деле, я уверен, что вы захотите запросить книги по их категории, так что это логичный дизайн для вас.

Смежные вопросы