2011-12-31 2 views
1

현재 학습용 제안을 위해 간단한 Django 웹 응용 프로그램을 만드는 단계를 계획 중입니다. 기본적으로 교사는 로그인하여 학생 성적을 입력 한 다음 학생이 로그인하여 성적을 볼 수 있습니다. 각 클래스에는 그룹 번호가 있습니다. , MySQL이 : 나는 나에게 사용할 수있는 데이터베이스 시스템의 수를 혼란 찾을,Django 웹 응용 프로그램에 적합한 데이터베이스 시스템 선택

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

고려하면 내가 일반적으로 장고 및 웹 DEVELOPPEMENT로 시작하는 오전 :

여기에 사용자의 템플릿입니다 CouchDB, MongoDB, SQLite 등. 그리고 나는 내 목적으로 사용할 데이터베이스 시스템을 결정하는 데 어려움을 겪고있다. (나는 데이터베이스에 대한 사전 경험이 없다.)

약간의 연구 끝에 Couchdb (및 SQLite)가 사용법을 배우기 쉽고 재미있게 보이는 것으로 나타났습니다. 그러나 그것은 나뿐이었고 그 때문에 도움이 필요한 것입니다. 나는 SQL과 NoSQL에 대한 많은 논쟁이 있음을 알고 있지만 이것이 데이터베이스 사용에 영향을 줄지는 알 수 없다. 이상적으로는, 데이터베이스 시스템은 장고와 잘 통합되어야하며 며칠 안에 다시 데리러 갈 수 있습니다.

다시 질문 : 웹 응용 프로그램에는 어떤 데이터베이스 시스템을 사용해야합니까?

모든 자료도 환영합니다.

감사합니다,

-Raphael

+0

Couch와 Mongo 같은 NoSQL은 SQL 데이터 스토어에 충실하지 않고 "그룹 32의 모든 남성 교사를 가져옵니다"와 같은 간단한 쿼리에도 대답 할 수 없습니다. NoSQL 솔루션 (일반적으로)은 "id Johny098의 모든 세부 사항 가져 오기"에만 응답합니다. 백만 줄의 오래된 데스크톱에서도 MySQL을 사용할 수 있습니다. – aitchnyu

답변

2

장고 웹 사이트의 페이지는 lists the database backends supported입니다. 그러나 Django의 데이터베이스 액세스 계층은 사용중인 데이터베이스 백엔드와 상관없이 거의 동일하게 작동하도록 설계되었습니다. 내가 링크 된 페이지에 설명 된 몇 가지 차이점이 있지만 기본 웹 응용 프로그램을 작성하는 경우 정상적인 사용으로 넘어 가지 않아야합니다. 따라서 귀하의 웹 응용 프로그램을 작성하는 방법에 관한 한, 에 열거 된 선택 중에서 실제로는이 중요하지 않습니다.

Django가 지원하는 모든 데이터베이스 백엔드는 SQL 기반이라는 점에 유의하십시오. Django를 통해 데이터베이스에 액세스하면 NoSQL 이동을 촉구하는 몇 가지 보안 문제가 사라집니다 ... NoSQL은 현재 거의 무시할 수있는 무언가입니다.귀하의 경우에는

, 나는 그것을 설정 쉽게 간단하기 때문에, SQLite는 따기 제안, 당신은 당신이 구축하는 방법에 대해 걱정해야하는 데이터베이스를 구성하는 방법에 대한 걱정 시간을 보내고 싶지 않아 당신의 웹 앱. SQLite와 다른 DBMS (데이터베이스 관리 시스템)의 차이점은 SQLite가 각 데이터베이스를 일반 파일에 저장하고 SQLite 클라이언트가 해당 파일과 직접 작업한다는 것입니다. 다른 DBMS (예 : MySQL, PostgreSQL, Oracle 등)에는 데이터베이스의 중앙 위치, 데이터베이스를 관리하는 서버 및 서버에 연결하여 모든 데이터베이스 액세스를 처리하는 클라이언트가 있습니다. 서버 기반 DBMS는 많은 동시 요청을 처리 할 수있는 기능이 있기 때문에 바쁜 웹 응용 프로그램에 적합하지만 학습 프로젝트로 사용하기 때문에 이러한 기능이 필요하지 않습니다.

+0

빠른 답변 주셔서 감사합니다. SQLite는 좋은 선택 인 것 같지만, 나는 그것에 대해 좋은 자료를 찾는 데 어려움을 겪고있는 것처럼 보인다. (나는 자주 MySQL 튜토리얼이나 매우 짧은 YouTube 튜토리얼을 발견한다.) 또한 여러 데이터베이스에서 잘 작동합니까? 예 : 사용자 용 데이터베이스와 성적 데이터베이스 (시험 점수 이름)가 있습니까? 엄청 고마워! – Raphael

+0

Django의 백엔드로 사용하고 있다면 SQLite 자체에 대해 전혀 배우지 않아도됩니다. Django 문서 ([example] (https://docs.djangoproject.com/en/1.3/topics/db/models/))에 설명되어있는 Django에서 데이터베이스를 사용하는 방법을 알아야합니다. 당신이하는 유일한 일은 SQLite에 특정한 것입니다. Django 설정 파일에서 SQLite가 당신이 사용하고자하는 데이터베이스 백엔드를 지정하는 것입니다. –

+0

또한 장고가 여러 데이터베이스를 얼마나 잘 지원하는지 잘 모르겠지만 꼭 필요하지는 않습니다. 일반적으로 웹 응용 프로그램 당 하나의 데이터베이스 또는 사이트 당 하나의 데이터베이스 만 사용합니다. 데이터베이스는 _tables_의 모음이며, 예에서는 사용자에 대해 하나의 표가 있고 등급에 대해 별도의 표가 있습니다. 그러나 장고는 당신에게 필요한 테이블을 만들 것입니다. 당신은 그것에 대해 걱정할 필요가 없습니다. –

0

내가 ... MySQL을 갈 이유? 왜냐하면 당신이 지명 한 사람들 중에서 가장 인기가 있고, 그보다 더 나은 점은 일자리를 찾을 때 더 많은 크레딧을 줄 것입니다 (예를 들어, 괴물 닷컴에 가서 MySQL을 알기를 원하는 많은 잽을 발견 할 수 있습니다 얼마나 많은 SQL-Lite 대?)

또한, MySQL은 간단하고 배우기 쉽고 많은 GUI 클라이언트 (일부는 오픈 소스)가 있으며 꽤 좋은 문서를 가지고 있습니다.

5

학습 목적을 위해 SQLite를 권장합니다. 설정 없음, 백그라운드 데몬이 실행되지 않음, 모든 것이 Python과 함께 번들로 제공되며 SQL (Django ORM과 잘 매핑 됨)이며 매우 간단한 DBMS입니다. 사실, 프로토 타이핑을 위해 SQLite를 사용하고 프로덕션 환경에서 MySQL/PostgreSQL로 전환하는 사람들이 있습니다.

NoSQL의 경우, 왜 필요한 이유가 무엇인지 그리고 필요한 이유가 무엇인지 모르는 경우 사용하지 않는 것이 좋습니다.

오, 그리고 마지막으로 한 가지 : 원시 암호가 아닌 암호 해시 (md5 또는 sha1)를 저장하십시오. 귀하의 경우에는 필요하지 않지만 실제 앱에서는 필수 사항입니다.

관련 문제