2012-01-26 3 views
0

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

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

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

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

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

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

ответ

1

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

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

В основном вы хотите 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 
+0

Ах, вы правы, я сделал означает новую таблицу. –

+0

Упс, не знаю, вводит ли это. В любом случае, если я не смогу найти какое-либо другое решение, я буду использовать его. Спасибо за Ваш ответ. Я просто новый и неуверенный в том, насколько эффективны мои проекты. –

+1

@JeremyMiller: Не говорите «если я не могу найти какое-либо другое решение». Поверьте мне, это почти наверняка то, что вы хотите сделать. (Я немного расширил свой ответ, чтобы показать, как это может выглядеть.) – ruakh

Смежные вопросы