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


Best way to store data in MySQL database

>晚上,

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

本质上我有这些数据:

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

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

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

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

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

游戏桌

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";

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

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

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

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

将它们

存储在单独的表中。 像这样:

表 1:游戏信息字段:gameid int、游戏名称 varchar(X)

表 2:游戏屏幕截图字段:ID int、gameid int、屏幕截图图像??(十)

您需要在桌子上具有 ID,以便可以引用游戏表中的屏幕截图。 我建议它们是整数的,因为使用 id 的游戏名称可能会很棘手。 根据您存储屏幕截图的实际图像还是指向图像的链接将决定屏幕截图图像字段的类型。