两个表之间的公共列

时间:2018-02-19 10:29:16

标签: android sqlite android-sqlite

我正在编写一个有两个表的Android应用程序:

String createQuery1 =
            "CREATE TABLE " + TABLE_NAME_TRIP + " (" + IDTRIP_COLUMN + " INTEGER PRIMARY KEY, "
                                                     + DATE_COLUMN + " TEXT)";


    String createQuery2 =
            "CREATE TABLE " + TABLE_NAME_GPS + " (" + IDGPS_COLUMN + " INTEGER PRIMARY KEY, "
                                                    + ID_TRIP_COLUMN + " INTEGER DEFAULT 0, "
                                                    + DISTANCE_COLUMN + " INTEGER DEFAULT NULL, "
                                                    + LATITUDE_COLUMN + " REAL DEFAULT NULL, "
                                                    + LONGITUDE_COLUMN + " REAL DEFAULT NULL)";

我希望第二个表中的 ID_TRIP 始终与第一个表中的IDTRIP具有相同的值。

是否可以链接两列以使它们始终相同?

目标应该是以下内容;

Table Trip                        Table GPS

Trip     Date                     ID    Trip    distance   ...
  1      xxx                      1      1        xxx
  2      xxx                      2      1        xxx
  3      xxx                      3      1        xxx
                                  4      2        xxx
                                  5      2        xxx
                                  6      3        xxx

点击按钮可增加行程,GPS数据每x秒自动进入。现在,我希望通过在点击按钮时递增GPS表中的 TRIP_ID 列,将GPS数据映射到当前行程。

1 个答案:

答案 0 :(得分:2)

你需要有约束力。(我希望这就是你要找的东西)

String createQuery2 =
        "CREATE TABLE " + TABLE_NAME_GPS + " (" + IDGPS_COLUMN + " INTEGER PRIMARY KEY, "
                                                + ID_TRIP_COLUMN + " INTEGER DEFAULT 0, "
                                                + DISTANCE_COLUMN + " INTEGER DEFAULT NULL, "
                                                + LATITUDE_COLUMN + " REAL DEFAULT NULL, "
                                                + LONGITUDE_COLUMN + " REAL DEFAULT NULL,"
                        + "CONSTRAINT TRP FOREIGN KEY ( " + ID_TRIP_COLUMN + ")"
                        + "REFERENCES " + TABLE_NAME_TRIP + "(" + IDTRIP_COLUMN +")";