在MySQL中连接表与JSON数据

时间:2016-04-21 15:32:15

标签: php mysql json laravel eloquent

我想知道哪种方法是处理数据关系的最佳方法。

我的人员表目前存储' name'和' url'对于以下的多个实例(为简单起见,列名称已更改):

  1. 最喜欢的书籍
  2. 最喜欢的网站
  3. 最喜欢的商店
  4. 最喜欢的地方
  5. 因此,对于上面的每一个,我在person表中有一个包含JSON字符串的列。例如,对于一个人,我可能会在' favourite_shops'柱:

    [{"name":"john lewis", "url":"http://www.johnlewis.com"},{"name":"tesco", "url":"http://www.tesco.co.uk"}]
    

    ' favourite_websites'以及' favourite_websites'柱

    [{"name":"bbc", "url":"http://www.bbc.co.uk"},{"name":"the guardian", "url":"http://www.guardian.co.uk"}]
    

    显然,这些JSON字符串可以包含更多项目,并且对于其他两列重复这一点 - ' favourite_books'和' favourite_places'。

    因此,对数据库的一个查询可以返回我需要的所有数据。但是我必须循环浏览AngularJS中的JSON以显示在前端。

    我的问题是 - 它是否有益(特别是由于需要前端处理),有4个连接表而不是上面列的列?

    或许是一个连接表(因为4共享相同的属性,名称和URL),另外一列指示该行引用的4个中的哪一个?

    要添加的内容:

    1. 我正在使用Laravel 5.2和Eloquent
    2. 我不太可能需要展示所有人['和他们的相关数据一次,视图将是一个人一次。
    3. 我也不太可能需要查询特定项目 - 即' favourite_shops'名为' john_lewis' - 数据是对个人的补充。
    4. 人与4个选项之间的关系是一对多的 - 人们不需要共享数据,任何匹配的条目只是额外的行。我使用的实际列很可能不需要在人之间共享数据。
    5. 我将上面的内容构建为RESTful api,因此所有数据都将是json_encoded。

0 个答案:

没有答案