Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php文件管理器数据库设计(mysql)_Php_Mysql_Database_Database Design - Fatal编程技术网

php文件管理器数据库设计(mysql)

php文件管理器数据库设计(mysql),php,mysql,database,database-design,Php,Mysql,Database,Database Design,有关图像(宽度/高度)的信息不相关。如果我需要,我会把它放在另一个表中,但我不需要图像信息。你觉得这个数据库设计怎么样?对于特定的表,您如何看待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 N

有关图像(宽度/高度)的信息不相关。如果我需要,我会把它放在另一个表中,但我不需要图像信息。你觉得这个数据库设计怎么样?对于特定的表,您如何看待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;
  • 名称
    应该是唯一的

  • 由于区分大小写,不应在此列中使用
    utf8\u unicide\u ci

例如,在linux中(不在窗口中)

example.jpg!=示例.JPG

使用ci将导致唯一名称问题

  • 如果您需要大量的写操作,innodb应该更合适

  • 其他图像的附加信息(如宽度、高度)可以存储到表中,以便进行搜索/过滤

  • 您不太可能希望保留文件的版本,但您应该存储有关创建者的信息(如用户id),以便可以轻松地追溯信息


因为只有“ajreal”回答了这个问题,我决定我的数据库设计的基础将是我建议的数据库设计。谢谢你的回答(voteup:)。我知道,ajreal,关于存储所有附加信息(用户、权限、acl、图像大小……以及所有其他应存储的“小信息”),我只是想听听其他意见)。谢谢。

为什么列名应该是唯一的?我可以在我的文件系统中使用它:A>B>A>B(其中>表示“has subdirectory”)!由于我使用了č、ć、ž、đ字符,并且我必须按照文件名(a、b、c、č、ć,…)对文件进行排序,您建议用什么代替utf8_unicode_ci,最好的替代方法是什么?@predrag.music-各有利弊,这些字符可以用iso-8859-*,并且可以将utf-8数据存储到拉丁语中table@ajareal:我在继承的一些应用程序中使用了mb_substr(),但我无法摆脱它凌乱的感觉。。。