在MySQL数据库中存储数据的最佳方法

时间:2012-06-13 13:05:51

标签: php mysql storage

晚上,

我没有接受过数据库培训,而且我有点失落。

基本上我有这些数据:

Game
    name_of_game varchar(?);
    screen_shots ?
         screen_shot_1
         screen_shot_2
              ...
         screen_shot_n
/Game

存储screen_shot_n数据的最佳方法是什么?

我是否尝试使用序列化数组?或者我是否需要尝试制作另一张桌子并存放在那里?顺便说一下,有30k'游戏'

我正在使用PHP和MySQL,无论如何都有帮助...

4 个答案:

答案 0 :(得分:3)

我可能会使用单独的屏幕截图。

游戏桌

game_id integer
name varchar

截图表

screenshot_id integer
game_id integer
screenshot varchar <--- a file name (or a blob or however you are storing the screenshot)

然后你可以找到游戏的截图:

SELECT * FROM screenshots WHERE game_id="123";

答案 1 :(得分:1)

在MySQL中存储图像不是一个好主意。我建议您保留游戏名称和游戏ID的主表,然后将游戏ID和时间戳(带有可选的随机密钥)存储在另一个表中。将屏幕截图存储在timestamp.jpg

格式的文件夹中

答案 2 :(得分:0)

您需要创建一个bin类型字段,并将数据存储在那里,

虽然它是二进制数据,但可能只使用本地存储而只是从数据库链接到它?

你可以.ht访问它以保护目录并使用PHP流式传输内容。

答案 3 :(得分:0)

将它们存储在单独的表格中。像这样:

表1:GameInfo字段:gameid int,nameofgame varchar(X)

表2:GameScreenShots字段:ID int,gameid int,screenshotimage ??(X)

您需要在桌面上显示ID,以便您可以参考游戏桌中的屏幕截图。我建议他们是整数,因为使用id的游戏名称可能会很棘手。取决于您是否存储屏幕截图的实际图像或图像链接是否将决定屏幕截图图像字段的类型。