2011-01-10 4 views
0

이미지 (너비/높이)에 대한 정보는 부적합합니다. 필요한 경우 다른 테이블에 넣을 수 있지만 이미지 정보가 필요하지 않습니다. 이 DB 디자인에 대해 어떻게 생각하십니까? MyISAM과 InnoDB의 차이점은 무엇입니까?php-file manager db 디자인 (mysql)

감사합니다. 의견을 보내 주셔서 감사합니다.

DROP TABLE IF EXISTS `directory`; 
CREATE TABLE `directory` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 
    `parent_id` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

DROP TABLE IF EXISTS `file`; 
CREATE TABLE `file` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 
    `fk_directory_id` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

DROP TABLE IF EXISTS `tag`; 
CREATE TABLE `tag` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

DROP TABLE IF EXISTS `tags_files`; 
CREATE TABLE `tags_files` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `fk_file_id` int(11) DEFAULT NULL, 
    `fk_tag_id` int(11) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

답변

0

"ajreal"만이 질문에 대답했기 때문에 나는 내 DB 설계의 기본이 내가 제안한 DB 설계가 될 것이라고 판단했기 때문에. 감사 답변 ajreal (voteup :)). 나는 모든 추가 정보 (사용자, 권리, acl, 이미지 크기, 그리고 저장되어야하는 나머지 "작은 정보")를 저장하는 것에 대해 알고 있습니다. 나는 단지 다른 의견을 듣고 싶었습니다.) 감사.

1
  • name

  • 고유해야하며 리눅스, 예컨대

인해 케이스 sensitives에,이 열의 utf8_unicide_ci 사용 (NOT IN 안된다 창)

example.jpg != example.JPG

당신이

  • 다른 이미지가 추가 정보와 같은, 폭, 높이가 테이블에 저장 될 수있는, InnoDB에 더 적합해야 쓰기가 많이 필요한 경우 고유 한 이름 문제를

    • 의 원인이됩니다 CI를 사용하여 검색/필터 기능을 설정하려면

    • 파일 버전을 유지하고 싶지는 않지만 생성자에 대한 정보 (예 : user_id)를 저장해야하므로 정보를 쉽게 추적 할 수 있습니다.

  • +0

    왜 열 이름이 고유해야합니까? 나는 이것을 내 파일 시스템에 가질 수있다 : A> B> A> B (여기서>는 '서브 디렉토리를 가진다'를 의미한다)! –

    +0

    나는 č, ć, ž, š, đ 문자를 사용하고 있으며 파일 이름별로 파일을 정렬해야합니다 (a, b, c, č, ć, ...) utf8_unicode_ci 대신 무엇을 제안합니까? 대안? – Diablo

    +0

    @ predrag.music - 장단점이 있습니다.이 문자는 iso-8859- *로 표현할 수 있으며, latin table에 utf-8 데이터를 저장할 수 있습니다. – ajreal