0

晚上,

我没有接受过数据库方面的培训,我有点迷茫。

基本上我有这些数据:

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

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

我是否尝试使用序列化数组?还是我需要尝试制作另一张桌子并将其存储在那里?顺便说一句,有 30k 的“游戏”

我正在使用 PHP 和 MySQL,如果这有帮助的话......

4

4 回答 4

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";
于 2012-06-13T13:10:39.423 回答
1

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

于 2012-06-13T13:10:40.940 回答
0

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

虽然是它的二进制数据,但也许只是使用本地存储并从数据库链接到它?

您可以 .htaccess 它来保护目录并使用 PHP 流式传输内容。

于 2012-06-13T13:10:04.613 回答
0

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

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

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

您需要在桌子上放置 ID,以便您可以参考游戏桌的屏幕截图。我建议它们是整数,因为使用游戏名称作为 id 可能会很棘手。根据您是否存储屏幕截图的实际图像或图像链接将确定您的屏幕截图图像字段的类型。

于 2012-06-13T13:10:41.750 回答