技术开发 频道

精通 Grails: 使用 Ajax 实现多对多关系

  多对多关系的实际效用

  现在,就绪的对象模型可以很好地模拟真实世界。我一年中要经历许多旅行,经历许多不同的航空公司,飞往许多不同的机场。将所有这些关系联系起来的就是一个 Flight。

  查看一下底层数据库,我只看到了期望看到的表,如清单 7 中的 MySQL show tables 命令的输出所示:

  清单 7. 底层数据库表

mysql> show tables;
+----------------+
| Tables_in_trip |
+----------------+
| airline        |
| airport        |
| flight         |
| trip           |
+----------------+

  airline、airport 和 trip 表中的所有列均与对应的域类中的字段匹配。flight 是连接表,表示其他表之间的复杂关系。清单 8 展示了 Flight 表中的字段:

  清单 8. Flight 表中的字段

mysql> desc flight;
+----------------------+--------------+------+-----+
| Field                | Type         |
Null | Key |
+----------------------+--------------+------+-----+
| id                   | bigint(
20)   | NO   | PRI |
| version              | bigint(
20)   | NO   |     |
| airline_id           | bigint(
20)   | YES  | MUL |
| arrival_airport_id   | bigint(
20)   | NO   | MUL |
| arrival_date         | datetime     | NO   |     |
| departure_airport_id | bigint(
20)   | NO   | MUL |
| departure_date       | datetime     | NO   |     |
| flight_number        | varchar(
255) | NO   |     |
| trip_id              | bigint(
20)   | YES  | MUL |
+----------------------+--------------+------+-----+

  用于创建新 Flight 的搭建的 HTML 页面为所有的相关表提供了组合框,如图 1 所示:

  图 1. 用于添加航班而搭建的 HTML 页面  

0
相关文章