どのデータベースを使用するかについて質問している場合、それは実際には個人の好みとそこから何をしたいかによって異なります。私はMySQLしか知らないので、MySQLを想定して質問の別の部分に答えます。
あなたが使用したいと思うでしょうINNODB
、あなたのテーブルに書き込みが集中し、大きなテーブルのためにあることを行っているので、INNODBの行ロックがオーバーライフセーバーとなりますMyISAM
。
テーブルの設計に関する限り、本当に必要なテーブルは1つだけのようです。
CREATE TABLE `wordpress`.`<table_name>` (
`id` smallint(4) NOT NULL AUTO_INCREMENT UNSIGNED,
`user` varchar(30) NOT NULL,
`filename` varchar(255) NOT NULL,
`date_insert` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE `userFile`(user, filename)
) ENGINE=`InnoDB`;
AUTO_INCREMENT
主キーはすべてのインデックスのすべてのエントリで複製されるため、任意の「id」列を設定しました。したがって、(ユーザー、ファイル名)の主キーを実行すると、ファイル名が非常に長い場合にパフォーマンスの問題が発生する可能性があります。
'id'列のサイズは、テーブルがどれだけ大きくなるかによって異なります。符号なしSmallintは65k行を提供します。
ユーザー名とファイル名はvarcharです。これは、長さが大幅に異なるためと思います。
これdate_insert
は、いつ挿入されたかに基づいて結果を並べ替える方法です(POPに役立ちます)。