Якщо ви запитуєте, яку базу даних використовувати, це дійсно залежить від особистих уподобань і того, що ви хочете від неї використовувати. Оскільки я лише знайомий з MySQL, я відповім на іншу частину питання, припускаючи MySQL:
ви хочете використовувати, INNODB
оскільки ваша таблиця буде інтенсивною для запису, а для великих таблиць блокування рядків INNODB буде рятувати життя MyISAM
.
Що стосується дизайну столів, то, здається, вам потрібен лише один стіл:
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`;
Я перейшов із довільним стовпчиком 'id', встановленому AUTO_INCREMENT
тому, що первинний ключ реплікується у кожному записі кожного індексу. Таким чином, виконання первинного ключа (користувача, імені файлу) може спричинити проблеми з продуктивністю, якщо ваші імена файлів надзвичайно довгі.
Розмір стовпця "id" залежить від того, наскільки велика ваша таблиця буде рости. Без підпису Smallint дасть вам 65k рядків.
Користувач і назви файлів - varchar, тому що вони, як я вважаю, різко відрізнятимуться по довжині.
Це date_insert
лише спосіб замовити результати залежно від того, коли вони були вставлені (корисно для вашого POP)