2009-10-27 2 views
1

데이터베이스에 의존하는 응용 프로그램을 만들고 있습니다. 플랫 파일 db를 사용하려고합니다.이 문제를 해결할만한 심각한 이유가 있습니까?플랫 파일 데이터베이스 PHP 응용 프로그램

나는 mimesis (http://mimesis.110mb.com) 을 사용하고 있습니다. mySQL을 사용하는 것보다 간단합니다. 경험이 거의 없음을 인정해야합니다. DB의 보안에 대해 궁금합니다. 하지만 파일은 PHP로 저장되며 견고한 데이터베이스 솔루션 인 것 같습니다.

나는 백업 및 데이터베이스 전송의 용이함을 정말 좋아한다. 모든 사람들이 mySQL 방식을 선호하는 것 같습니다. 쿼리가 올 때보다 빠르지 만, 플랫 파일 DB에서 멀어지고 (마침내) 올바르게 mysql을 배울 수있는 이유가 있습니다.


편집 그냥하자 사람들은 내가 MySQL과 진행, 그리고 CodeIgniter의 프레임 워크를 사용하고 결국 , 알고있다. 여전히 플랫 파일 db를 좋아하지만, 이제는이 프로젝트가 필요 이상으로 복잡하다는 것을 깨달았습니다.

+0

Mimesis를 가리켜 주셔서 감사합니다. 흥미로운 응용 프로그램! – Smandoli

+0

주의 사항 : 사용하는 경우 잠금 해제를 지켜야합니다. 릴리스 전에 반환을했기 때문에 20 개의 스크립트가 잠금을 기다리는 중 이었기 때문에 서버에서 불쾌한 오류가 발생했습니다. 따라서 데이터베이스를위한 적절한 핸들러를 만드는 것이 중요합니다. 그러나 작은 물건들에겐 좋습니다. – Daniel

답변

1

플랫 파일 구조 만 필요하면 대답은 "미세"입니다. 하나의 테스트 : 하나의 간단한 스프레드 시트가 모든 요구 사항을 처리합니까? 그렇지 않으면 플랫 파일이 아닌 관계형 구조가 필요합니다.

잘 모르겠 으면 플랫 파일을 시작할 수 있습니다. SQLite는 시작하기에 훌륭한 앱입니다.

과정에서 너무 멀리 파악하면 잘못된 선택을 한 것을 배우는 것은 좋지 않습니다. 그러나 관계형 구조의 중요성을 이해하고 필요에 따라 조기에 업 사이징을하면 잘됩니다.

+0

관계형 구조 - 대단히 중요합니다. 이 목적을 위해 행 내부에 다른 테이블 이름이있는 하나의 마스터 테이블을 계획 중이므로 충분할 것입니다. 그러나 나는주의해야 할 좋은 제한입니다 - 감사합니다 – Daniel

+0

흠! 평범한 파일 앱을 사용하여 관계형 데이터베이스를 모델링하는 데 어느 정도 시간이 걸리는 것 같습니다. 그게 사실이라면 나는 걱정할 것이다. – Smandoli

+0

기본적으로 MySQL을 배우려고합니다. 휴대 성과 백업은 예상보다 훨씬 간단합니다. 나는 좋은 ol 'phpMyAdmin을 사용하고 성공적으로 복원했습니다. 다른 사이트로 이식하려고하지 않았습니다. 백업은 매우 빠르고 간단합니다. 내 질문은 테스트 웹 서버 (LAMP/WAMP)가 있습니까? 당신이 이것과 IDE가 없다면, 학습과 실험은 부담 스러울 것입니다. – Smandoli

3

SQLite을 사용하면 많은 SQL 기능이있는 데이터베이스를 얻을 수 있지만 단 하나의 파일입니다.

+0

cauko, 몇 번이나이 솔루션 (http://www.sqlite.org/)을 보았습니다. 잘못된 웹 사이트를 보거나 무언가를 놓치고 있습니까? 그것은 내가 호스트보다 더 힘들게 배포 할 수있는 호스트와 함께 설정해야 할 것 같습니다. – Daniel

+0

호스트에 SQLite가 설치되어 있어야하지만 요즘에는 많은 호스트에 기본값이 있습니다. 설치되어있는 경우 호스트는 사용하기 위해 아무 것도 할 필요가 없습니다. – ceejayoz

+0

아니요, 파일을 가리키며 해당 파일 만 사용합니다 (존재하지 않는 경우 생성). 정규 관계형 데이터베이스로 사용하면,'CREATE TABLE'으로 테이블을 생성하고, INSERT로 데이터를 삽입하는 등의 작업을 할 수 있습니다. 예제는 http://www.php.net/manual/en을 참조하십시오. /function.sqlite-open.php –

0

상호 운용성. MySQL은 기본적으로 모든 언어로 인터페이스 될 수 있습니다. Mimesis는 PHP 외부에서 사용하기 쉽지 않습니다.

이것은 프로파일 러를 사용하거나 외부에서 데이터를 수정하려고 할 때 중요 해집니다.

1

정말 를 백업하고 내가 MySQL과 어렵게 발견 데이터베이스를, 수송의 용이성 등을들 수있다.

다른 답변에서 언급 한대로 SQLite을 사용하십시오. 백업 할 파일은 하나뿐입니다. 또는 MySQL 데이터베이스의주기적인 덤프를 SQL 파일로 설정하십시오. 이것은 상대적으로 간단한 일입니다.

나는 모든 사람들이 에게 MySQL의 방식을 선호하는 것 같다 참조 -하고

속도가 확실히 고려 쿼리에 관해서는 가능성이 더 빨리 입니다. 데이터가 더 잘 구성되기 때문에 데이터베이스는 훨씬 더 빠른 경향이 있습니다.그 이외의

는 에 대한 이유가 플랫 파일 DBS 멀리하고 (마지막으로) 제대로 MySQL의 내용입니까?

데이터베이스 솔루션을 사용해야하는 이유는 분명 있지만 플랫 파일에 대한 인수가 있습니다. 당신이 "보통"사용하는 것 이외의 것을 배우는 것은 항상 좋은 일입니다. 대부분의 결정은 응용 프로그램에 따라 다릅니다. 동시 사용자 수는 몇 명입니까? 거래 지원이 필요합니까?

0

플랫 파일의 문제점은 추가 개발을 위해 상황을 조정하기 위해 시스템의 기초를 향상시키기 위해 상당한 양의 코드를 변경해야한다는 것입니다. 반면 순수한 SQL 시스템이라면 앞으로 진행될 수정이 거의 필요하지 않을 것입니다.

3

안녕하세요, 저는 Mimesis의 제작자입니다. 관계형 데이터베이스와 SQL은 다량의 데이터를 처리해야하는 상황에서 중요합니다. 관계형 데이터베이스보다 우수한 플랫 파일입니까? 음, 전체 보관 시스템이 플랫 파일로 작동하고 지구에서 가장 인기있는 검색 엔진 인 Google에 문의 할 수 있습니다. Mimesis는 그들의 시스템과 비교합니까? 가능성이 없습니다.

Mimesis는 특정 틈새 문제를 해결하기 위해 만들어졌습니다. 나는 온라인 활동을 위해서만 무료 웹 사이트를 사용한다. 많은 무료 사이트가 PHP를 사용할 수있는 기능을 제공합니다. 그러나 무료 SQL 데이터베이스 액세스는 제공하지 않습니다. 따라서 데이터를 저장하고 잠금을 구현하며 파일 권한을 해결하는 데이터베이스를 만들어야했습니다. 이것들이 Mimesis의 주요한 설계 매개 변수 였고, 그것들 모두에 성공합니다.

Mimesis의 속도에 대한 아이디어가 필요한 경우 첫 페이지로 이동하면 사이트를보고있는 국가를 알려줍니다. 이 무료 데이터베이스는 ip2nation.com 사이트에서 가져 와서 Mimesis ffdb로 이식됩니다. 수천 가지가 아니라면 수천 가지 항목이 있습니다.

또한 메인 페이지의 방문 횟수 카운터는 이미 7000 명이 넘습니다. 이것은 고유 방문입니다. 즉, 스크립트가 데이터베이스를 검색하여 방문중인 IP 주소가 이미 있는지 확인하고 총 IP 수를 계산해야합니다.

메인 페이지가 꽤 빨리로드되고, 백엔드에서 실행되는 Mimesis 데이터베이스 스크립트가 상당히 두 개인 경우에주의하십시오. Mimesis가 데이터를 저장하는 방법은 읽기 및 쓰기 절차와 번역 절차의 속도를 높이기 위해 수행됩니다. 대부분의 ffdb 예제 스크립트 나 다른 ffdb 스크립트는 간단한 CVS 파일이나 데이터 저장을위한 다른 구조를 사용합니다. Mimesis는 실제로 몇 가지 수준에서 이진 데이터를 해석하여 기능을 향상시킵니다. Mimesis는 플랫 파일 데이터베이스와 관계형 데이터베이스 간의 하이브리드입니다.

대부분의 다른 ffdb 스크립트에는 업데이트 할 때마다 COMPLETE 파일을 다시 쓰는 작업이 포함됩니다. Mimesis는이 작업을 수행하지 않고 구조 파일 만 다시 작성하고 실제 행 내용을 업데이트합니다. 따라서 오류가 발생하더라도 이전 데이터가 아닌 새로운 데이터 만 손실됩니다. Mimesis는 또한 역사를 유지합니다. 테이블이 새로 고쳐지지 않으면 이전에 행이 가지고 있던 데이터가 여전히 포함됩니다.

나는 모든 기능을 계속 사용할 수 있지만 이것은 "Mimesis는 지금까지 가장 훌륭한 데이터베이스"라고 말한 것이 아닙니다. Moreso는 사람들이 SQL을 사용할 수있는 유일한 기술이 아니며 적절한 개발 패러다임이 주어지면 플랫 파일이 관계형 데이터베이스보다 뛰어나다는 사실을 사람들이 인식하도록하기 위해 더욱 전문화되었습니다.

긴 라이브 플랫 파일과 이어지는 두통을 용인하는 코더.

+0

안녕하세요, 작성자의 댓글을 확인하는 것이 좋습니다! 여러 테이블을 통합 데이터베이스로 활용하는 방법에 대한 권장 사항이 있는지 궁금합니다. 그게 그것이 중요하지 않다는 것을 알지만, mimesis 위에 관계형 데이터베이스를 구축 할 여지가 있습니까? – Daniel

+0

절대 다니엘. 그것은 창조적 인 생각을하지만 불가능하지는 않습니다. Mimesis 행에는 서로 구별 할 수있는 레이블이 있습니다. 이러한 행 레이블은 기본 키와 유사합니다. 테이블간에 영리한 라벨링 체계를 활용함으로써 그 사이에 참조를 만들 수 있습니다. Mimesis가 지원하지 않는 작업 (적어도 잘 처리하지 못함)은 열의 삽입/삭제뿐입니다. 이러한 경우 전체 데이터베이스를 다시 작성해야합니다. 그것의 제 의견 비록 당신이 당신의 테이블이 미리 필요할 것인가에 대해 잘 생각한다면 컬럼 삽입/삭제는 불필요합니다. –

1

은 미메시스는 또한, 나는 키 - 값 저장소로 ffdb에서 미메시스의 초점을 이동하고 http://mimesis.site11.com/

원래 URL로 이동했음을 알려 싶었다. 더 현명합니다. 내가 저장하고있는 정보의 유형과 내가 그것을 검색하는 데 사용하는 방법을 생각해보십시오. 또한 Mimesis의 코딩에 중대한 오류가있었습니다 (나는 고정되어 있습니다). 그러나 새로운 키 - 값 저장소 유형의 테스트 단계에 있습니다. 나는 또한 다른 것들에 의해 측면 추적을 받았다. 뮤텍스 (mutex) 메커니즘으로 파일 생성의 사용에서 디렉토리 생성으로 잠금 기능이 변경되었습니다.

관련 문제