2011-02-13 55 views
0

我有创造孩子的礼物应用程序的应用,每一个应用程序拥有者可以将自己的礼物,现在我保存的礼物在一个PHP数组:MySQL表VS PHP Array的

<?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表? - 对所有应用程序使用一个表格? - 在Gift INSERT/UPDATE/DELETE之后,使用一个MySQL表来存储所有应用程序的礼品并缓存每个应用程序的MySQL结果?

+0

一个表是不是一个坏主意。我有一个应用程序,使用几百个表... – GolezTrol 2011-02-13 21:28:55

+0

我已经用它来存储用户和一些日志,使用缓存这种解决方案是好的? – Hamza 2011-02-13 21:32:20

+0

MySQL有一个内置的查询缓存。 – 2011-02-13 21:48:58

回答

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)