MySQL таблица VS PHP Массив

0

У меня есть приложение, которое создает дочерние приложения для подарков, и каждый владелец приложения может добавлять собственные подарки, прямо сейчас я храню подарки в php-массиве:

<?php
$gifts_array = array(
array(>4,"Flower",>250,"5_250.jpg",301),
array(1,"a Good Day",30,"3_30.jpg",153),
array(2,"cat",10,"3_10.gif",139),
array(3,"batman",20,"2_20.jpg",101),
array(11,"White Wolf",100,"11_100.jpg",5),
array(10,"crazy cat",30,"10_30.gif",2),
array(8,"Gift",100,"6_100.jpg",2),
array(12,"Car",120,"12_120.jpg",1),
array(9,"cat 2",30,"9_30.gif",1),
array(7,"2Pac",500,"3_500.jpg",0),
array(6,"Outlawz",500,"4_500.jpg",0)
);
?>

Мне нужно обновлять подарочный счетчик каждый раз при отправке, поэтому мне нужно сделать цикл, чтобы найти подарок, а затем увеличивать и записывать весь массив в файл.

Хорошо создать этот массив следующим образом:

    '100'=>array('gname'=>"Flower",'gpoints'=>250,'gpic'=>"5_250.jpg",'gviews'=>301),
     100 is the Gift ID.

Какое оптимальное решение: - Создать для каждого приложения таблицу MySQL? - Использовать одну таблицу для всех приложений? - Используйте одну таблицу MySQL для хранения всех подарков приложений и результатов кеша в MySQL для каждого приложения после отправки вложенных файлов/INSERT/UPDATE/DELETE?

  • 0
    Одна таблица на приложение - неплохая идея. У меня есть приложение, которое использует пару сотен таблиц ...
  • 0
    Я уже использовал это для хранения пользователей, и некоторые журналы, использование кеша для этого решения хорошо ???
Показать ещё 1 комментарий
Теги:
database
arrays

2 ответа

3
Лучший ответ

Просто создайте одну таблицу с таким же количеством столбцов, плюс один, определяющий, какое "приложение" ему соответствует. Не создавайте новую идентичную таблицу для каждого приложения и не продолжайте чтение/запись из текстового файла, как concurrency, так и кошмары обслуживания.

  • 0
    каждое приложение может загрузить максимум 100 подарков, я думаю, что запросы SELECT из таблицы, содержащей более 300 тыс. строк, работают медленно?
  • 1
    Нет, если только вы не считаете однозначные миллисекунды медленными. Эта веб-страница включает в себя множество запросов к таблицам с миллионами строк, это медленно? Определите индекс application столбца application и он даже не смотрит на таблицу, а только на индекс.
Показать ещё 3 комментария
0

Используйте одну таблицу

//Create a table to hold all your info
CREATE applications (id INTEGER AUTO INCREMENT, gname VARCHAR(255), gpoints INTEGER, gpic VARCHAR(255), gviews INTEGER);

//Increment the number of views
UPDATE applications SET gviews=gviews+1 WHERE gname='Flower'

//Get the names of all the applications (replace gname with what you want to get or * for all)
SELECT gname FROM applications

//Initially add the entries into applications
INSERT INTO applications (gname, gpoints, gpic, gviews) VALUES ('Flower', 250, '5_250.jpg', 301)
  • 0
    Каждое приложение имеет идентификатор, хранящийся в таблице приложений, и каждое приложение может загружать свои подарки :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню