Хранение переменного количества файлов загрузки статистики в базе данных MySQL - PullRequest
0 голосов
/ 26 января 2012

У меня есть несколько файлов на моем сайте, которые являются частными и передаются через php.Я отслеживаю загрузки, используя базу данных mysql.В настоящее время я просто использую столбец для каждого файла и вставляю новую строку для каждого дня, что хорошо, потому что у меня не так много файлов.

Однако я собираюсь начать добавлять и удалять файлы справедливочасто, и количество файлов будет становиться очень большим.На мой взгляд, у меня есть два варианта:

Первый - добавлять и удалять столбцы для каждого файла по мере их добавления и удаления.Это быстро приведет к тому, что в таблице будет очень много столбцов.Я самоучка, поэтому я не уверен, но думаю, что это, наверное, очень плохо.Добавление и удаление столбцов при наличии большого количества строк звучит как очень дорогая операция.

Я также мог бы создать новую базу данных с универсальным полем 'fileID', а затем ежедневно добавлять новую строку для каждогофайл, но это приведет к множеству строк.Кроме того, было бы много операций вставки строк для создания отслеживания на следующий день.

Что было бы лучше?Или есть третье решение, которое мне не хватает?Должен ли я использовать что-то кроме MySQL?Я хочу что-то, что можно запросить, чтобы я мог отображать статистику в виде графиков на сайте.

Большое спасибо за вашу помощь и за то, что нашли время прочитать.

1 Ответ

1 голос
/ 26 января 2012

Я мог бы также создать новую базу данных с универсальным полем fileID, а затем каждый день добавлять новую строку для каждого файла, но это приведет к большому количеству строк.

Да, это то, что вам нужно сделать & mdash; но вы имеете в виду «новую таблицу », а не «новую базу данных ».

Обычно вам понадобится таблица file, которая может выглядеть следующим образом:

 id | name      | created_date | [other fields ...]
----+-----------+--------------+--------------------
  1 | foo.txt   | 2012-01-26   | ...
  2 | bar.txt   | 2012-01-27   | ...

и ваша таблица downloads_by_day будет ссылаться на нее:

 id | file_id | `date`     | download_count
----+---------+------------+----------------
  1 |       1 | 2012-01-27 |             17
  2 |       2 | 2012-01-27 |             23
  3 |       1 | 2012-01-28 |              6
  4 |       2 | 2012-01-28 |            195
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...