Выбор правильной системы базы данных для веб-приложения Django - PullRequest
1 голос
/ 31 декабря 2011

В настоящее время я нахожусь на стадии планирования создания простого веб-приложения Django (для изучения предложений).По сути, учитель может войти в систему, ввести оценки учеников, а затем ученики могут войти и просматривать свои оценки.У каждого класса есть номер группы.

Вот шаблон пользователя:

Username: Johny098
Password: Y98uj*?877!(
Name: John Doe
Gender: Male
Group: 32
Secondary: 5

Учитывая, что я начинаю с django и web developmentpement в целом, я нахожу запутанное числодоступных мне систем баз данных: MySQL, CouchDB, MongoDB, SQLite и т. д. И мне трудно решить, какую систему баз данных использовать для моих целей (у меня нет опыта работы с базами данных).

После некоторых исследований я обнаружил, что Couchdb (и SQLite) довольно прост в использовании и интересен, но это только я, и поэтому мне нужна помощь.Я знаю, что существуют многочисленные дебаты по SQL против NoSQL, но я не знаю, окажет ли это влияние на мое использование баз данных.В идеале, система баз данных должна хорошо интегрироваться с django и быть достаточно простой, чтобы ее можно было взять за пару дней.

Итак, возвращаясь к вопросу: какую систему баз данных я должен использовать для своего веб-приложения?

Также приветствуются любые ресурсы.

Спасибо,

-Рафаэль

Ответы [ 3 ]

5 голосов
/ 31 декабря 2011

В целях обучения я бы порекомендовал SQLite: нет установки, не работают фоновые демоны, все в комплекте с Python, это SQL (так что он хорошо отображается с Django ORM), и это очень простая СУБД.Фактически, некоторые люди используют SQLite для создания прототипов, а затем переключаются на MySQL / PostgreSQL в производственном процессе.

Что касается NoSQL, я бы не рекомендовал использовать его, если вы точно не знаете, зачем и для чего он вам нужен.

Да, и последнее: хранить хэши паролей (md5 или sha1), а не необработанные пароли.Это не обязательно в вашем случае, но в реальных приложениях это обязательно.

2 голосов
/ 31 декабря 2011

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

Обратите внимание, что все серверные базы данных, поддерживаемые Django, основаны на SQL, яверить.Доступ к базе данных через Django устраняет некоторые проблемы безопасности, которые, как мне кажется, вызвали движение NoSQL ... в любом случае, NoSQL - это то, что вы можете пока игнорировать.

В вашем случае я бы предложилвыберите SQLite просто потому, что его проще настроить, и вы не хотите тратить время на беспокойство о том, как настроить базу данных, когда вам нужно беспокоиться о том, как создать свое веб-приложение.Разница между SQLite и большинством других СУБД (систем управления базами данных) заключается в том, что SQLite хранит каждую базу данных в обычном файле, и клиент SQLite работает непосредственно с этим файлом.Другие СУБД (такие как MySQL, PostgreSQL, Oracle и т. Д.) Имеют центральное расположение для баз данных, сервер для управления ими и клиент, который подключается к серверу и обрабатывает весь доступ к базе данных.Серверная СУБД хорошо работает для загруженного веб-приложения, поскольку она имеет функции для обработки множества одновременных запросов к базе данных, но, поскольку вы просто используете это как учебный проект, вам не нужны эти функции.

0 голосов
/ 31 декабря 2011

Я бы пошел на MySQL ... почему?потому что среди тех, что вы назвали, он является самым популярным и, что еще лучше, он даст вам больше кредитов при поиске работы (например, вы можете перейти к monster dot com и узнать, сколько jab-файлов требуют от вас знания MySQL)vs сколько SQL-Lite).

Кроме того, MySQL прост и легок в освоении, есть много клиентов с графическим интерфейсом (некоторые из которых с открытым исходным кодом) и имеет довольно хорошую документацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...