0

我正在尝试使用面向文档的数据库,但我无法正确设计。

主要是,我想要一个可以存储飞机、座位、乘客的数据库,非常重要的是 - 乘客在特定飞机上所做的座位更改及其时间戳。

我需要查询飞机上的所有座位、飞机上的所有座位、飞机上的所有乘客、在某个时候选择特定座位的所有乘客、乘客在飞机上选择的所有座位以及大多数受欢迎的座位。

在关系数据库中,我只会使用 2 或 3 个多对多关系及其关联的联结表,但我不知道如何在面向文档的数据库中执行此操作。现在,这架飞机有一个关于座位和乘客的参考清单;座位和乘客相互引用。这不起作用,因为我不知道在哪里保存座位更改的时间戳。我想我需要另一个(一种连接)表,但我不确定如何正确地做到这一点。

有什么建议么?

4

1 回答 1

0

您的架构设计应该是这样的:

{  //Flight Collection, helps query Available and Booked seats
  "Flight_id":"A",
  "FlightName":"CoolAir",
  "AvailableSeats":["A1","A2"],
  "BookedSeats":["A3","A4"]
}
{  //Seats Collection, helps query current/previous passenger
  "SeatId":"A1",
  "Flight_id":"A",
  "AllPreviousPassengers":[{"P2",TimeStamp1},{"P3",TimeStamp2}],
  "CurrentPassenger":{"P1",TimeStamp3}
}
{//Passenger collection, helps query passenger details
  "PassengerId":"P1",
  "PassengerName":"Mr. ABC",
  "SeatId":"A1",
  "Flight_id":"A"
}

对于您的用例,这大致是架构的外观。代码中需要连接。

于 2014-08-24T17:03:24.903 回答