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

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

0 голосов
/ 14 февраля 2011

У меня есть приложение, которое создает приложения для подарков детям, и каждый владелец приложения может добавлять свои подарки, сейчас я храню подарки в массиве 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?

Ответы [ 2 ]

3 голосов
/ 14 февраля 2011

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

0 голосов
/ 14 февраля 2011

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

//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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...