SQL - 从三个表中选择数据,其中一个表具有多个到同一主键的外键

时间:2016-10-23 08:45:31

标签: sql node.js

我有以下表格和关系:

enter image description here

当我创建User时,该用户获得CurrentWeek行,而当前周行依次获得CurrentWeekStatus行。用户可以将食品添加到Food表中,然后可以从这些食品中进行选择,并选择一些要插入CurrentWeek

在客户端中,我想抓取CurrentWeek作为具有Food个对象列表的对象及其对应状态列表。

我正在努力如何实现这一目标。我认为这可以通过对数据库进行多次查询来完成,一个用于提取CurrentWeek,然后从此提取所有FoodId并进行单独查询以获取每个Food }。但这似乎是一个非常糟糕的解决方案。

我能想到的另一个解决方案是使用所有必要的数据进行查看。但我不知道如何制作这种观点,即使我设法制作视图,我也不知道如何将每个Food分成不同的对象。

有谁知道一个很好的方法来实现这个目标?

我使用NodeJ作为REST API,并使用改进的Android Studio发送REST调用。

1 个答案:

答案 0 :(得分:0)

在咨询StackOverflow和一些同事之后,我将初始数据库模式更改为:

enter image description here

这是我最初选择不参与的设计,因为我认为在CurrentWeek表上为每个用户添加一行比在PlannedFood表中为每个用户添加多行更好。然而,我现在看到,与其他设计相比,这种设计具有一些优点。

以这种方式设计也解决了我的初始问题,因为我现在可以抓取PlannedFood中针对特定用户的所有行,加入FoodId,然后将Food数据映射到客户端的Food对象。