php-файловый менеджер db design (mysql) - PullRequest
1 голос
/ 10 января 2011

Информация об изображениях (ширина / высота) не имеет значения.Если мне это нужно, я положу это в другую таблицу, но мне не нужна информация об изображениях.Что вы думаете об этом дизайне БД?Что вы думаете о MyISAM против InnoDB для конкретных таблиц?

Спасибо, я ценю любые отзывы.

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;

Ответы [ 2 ]

2 голосов
/ 10 января 2011
  • столбец name должен быть уникальным

  • и не следует использовать utf8_unicide_ci для этого столбца из-за чувствительности к регистру

например, в Linux (не в окне)

example.jpg != example.JPG

использование ci вызовет проблему уникального имени

  • если вам требуется много записи, лучше подойдет innodb

  • другие изображения дополнительная информация, такая как, ширина, высота может быть сохранена в таблице для поиска объекта / фильтра

  • вряд ли вы захотите сохранить версии файла, но вы должны хранить информацию о создателе (например, user_id), чтобы вы могли легко отследить информацию

0 голосов
/ 11 января 2011

Так как только «ajreal» ответил на этот вопрос, я решил, что основой для моего дизайна БД будет дизайн БД, который я предложил. Спасибо ajreal за ответ (вотум :)). Я знаю, ajreal, о хранении всей дополнительной информации (пользователи, права, acl, размеры изображений, ... и вся остальная "маленькая информация", которая должна храниться :), я просто хотел услышать другие мнения). Спасибо.

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