데이터베이스 디자인에 대한 질문이 있습니다. 나는 내 자신의 교육을 위해 전자 수첩 또는 "Everything Bucket"을 만들고 싶다. EverNote 나 Circus Ponies Notebook이나 오픈 소스 KeepNotes 나 Red Notebook과 같은 훌륭한 대안이 있다는 것을 알고 있습니다. 그러나, 내가 말했듯이, 나는 학습 경험을 위해서 내 자신을 만들고 싶다.전자 노트북 용 데이터베이스 디자인
그러나 나는 데이터베이스 디자인에 많은 경험이 없습니다. 제 질문은 디자인이 어떻게 보이는지입니다 - 테이블, 인덱스 등 어떻게 생각합니까?
- 모든 노트에는 0 개 이상의 노트 또는 페이지가 있습니다.
- 모든 페이지마다 고유 한 제목과 콘텐츠가 있습니다. "실제"컨텐츠 이외에 작성 날짜, 최종 수정 날짜와 같은 메타 데이터가 있습니다.
- 범주가 "없음"인 경우에도 모든 페이지는 하나 이상의 범주에 속합니다. 카테고리에는 추가 하위 카테고리가있을 수 있습니다. 예를 들어, "컴퓨터 과학"범주 아래에 "프로그래밍 언어"및 "컴파일러 디자인"과 같은 하위 범주가있을 수 있습니다.
- 모든 페이지에는 0 개 이상의 태그가 연결되어 있습니다. 이것들은 범주와 유사하지만 완전히 동일하지는 않습니다. 예를 들어, 논문은 "Compiler Design"카테고리에 속할 수 있지만 저자 이름, 저널 이름, 발행 년도 등으로 태그가 붙을 수 있습니다.
- 페이지의 내용에는 텍스트, 이미지, 링크 등을 저장할 수있는 HTML 스트림이 포함되어야합니다. 그들은 꽤 큰 데이터 덩어리가 될 수 있습니다. 이미지와 같은 특정 부분을 텍스트와 별도로 저장하는 것이 맞습니까? (PDF 문서의 내용을 표시 할 수 있다면 좋겠지 만,이 시점에서 꼭 필요한 것은 아닙니다.)
- 같은 데이터베이스의 다른 페이지에 대한 상호 참조가 페이지에 포함될 수 있다면 좋을 것입니다 , 위키처럼.
카테고리, 태그, 부분 제목 또는 전체 텍스트로 검색 할 수 있기를 원합니다. 나는이 프로그램이 범주, 태그 및 제목을 보여주는 데이터베이스에 대해 서로 다른 견해를 가질 수 있다고 생각합니다. 그래서 이들을 신속하게 열거 할 수 있다면 좋을 것입니다.
그래서 이러한 욕망을 감안할 때, 좋은 데이터베이스는 어떻게 생겼을까요? 나는 SQL 데이터베이스가 사용될 것이라고 가정하고 있지만 Sleepycat Java Edition 데이터베이스와 같은 것은 괜찮을 것입니다.
미리 감사드립니다.
오픈 소스 옵션을 알고 있으므로 소스 및 문서를 검토하여 다른 사람들이 어떻게 구현했는지 확인해 보셨습니까? 그것은 좋은 시작 장소 (또는 적어도 당신이하고 싶지 않은 것에 대한 아이디어)를 제공 할 수 있습니다. – Velociraptors
예, KeepNote 및 RedNotebook의 작동 방식을 살펴 보았습니다. KeepNote는 파일 및 디렉토리의 계층에 저장된 XML을 사용합니다. RedNotebook은 특수 텍스트 형식을 사용합니다. 더 많은 정보가 있습니다. Wordpress는 내가 원하는 것을 대부분하는 것으로 보이지만, PHP 기술은 강하지 않습니다. C, C++, Java, Pascal 또는 Lisp의 어떤 것이 가장 편리 할 것입니다. 하지만 PHP를 배우는 데는 아무 문제가 없습니다 ... –