Se você está perguntando sobre qual banco de dados usar, isso realmente depende da preferência pessoal e do que você deseja dele. Como eu estou familiarizado apenas com o MySQL, responderei a outra parte da pergunta assumindo o MySQL:
você desejará usá-lo INNODB
porque sua tabela precisará de gravação intensiva e, para tabelas grandes, o bloqueio de linhas do INNODB será um salva-vidas MyISAM
.
Quanto ao design da tabela, parece que você realmente precisa apenas de uma tabela:
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`;
Fui com uma coluna 'id' arbitrária definida como AUTO_INCREMENT
porque a chave primária é replicada em todas as entradas de todos os índices. Portanto, executar uma chave primária de (usuário, nome do arquivo) pode causar problemas de desempenho se os nomes dos arquivos forem extremamente longos.
O tamanho da coluna 'id' depende do tamanho da sua tabela. Smallint não assinado fornecerá 65k linhas.
Usuário e nomes de arquivos são varchar, porque eles variam drasticamente em tamanho, suponho.
O date_insert
é apenas uma maneira de ordenar os resultados com base em quando ela foi inserida (útil para o seu POP)