2015-02-23 140 views
0

我目前正在寻找在每个用户的数据库中保存一些数据的最佳方法。假设每个用户都可以在他们的账户上保存食谱,那么这样做的最佳方式是什么?在数据库中这种存储最好的想法是什么?

我想在一列中存储JSON字符串,但我读到这可能不是最好的想法,因为它查询速度很慢?

另一个想法是创建一个全新的表格,在这个表格中保存所有正在保存的配方。

你会推荐什么?谢谢。

+1

你想要一个叫做用户的表格,一个叫做食谱,另一个表格是食材。食谱表将有一个链接到用户表的主键的foriegn键,并且成分表将具有链接回食谱表的PK的FK – Jacob 2015-02-23 17:38:53

+0

你有没有尝试过的东西是不是为你工作?配方可以有任何数量的配料,如何制作说明等。这似乎有点偏离主题,它绝对过于宽泛。我会从概念层面着手,思考你需要存储的所有不同的东西,然后开始将它分类到表格中。 – Crackertastic 2015-02-23 17:39:47

+1

你已经用MySQL标记了这个问题 - 这是否意味着你已经致力于使用MySQL数据库? (如果是这样,规范化的关系模式将是一个好主意。) – 2015-02-23 17:40:03

回答

2

编辑:

您的评论之后,我会建议你创建用户和配方之间的结台(即实行“一个用户在多条道路”的关系)。

这将充分利用SQL的功能,并为您节省大量的汗水,如果你以后想做一些奇特的查询。

+0

感谢您的信息,但你让我有点不对。首先,我将自己制作一张桌子上的所有食谱。这里的功能是用户可以将特定的食谱保存到他们的帐户。例如,在用户表下有一个名为“saved_recipes”的列,用JSON编码,其中包含用户保存的配方的ID。我仍然可以创建一个名为“saved_recipes”的新表,谢谢! – Anders 2015-02-23 18:09:52

0

不知道更多关于您的应用程序的要求我将不得不在此处概括一下:您不应该将其另存为JSON。这不仅会在查询时耗费更多资源,而且无法索引(非常容易),但也会使其他应用程序更难以使用这些数据。您应该使用normalize数据并使用PHP json_encode()将您的查询结果转换为JSON对象。

相关问题