首页 > 解决方案 > 如何在 SQLite DB 中创建多对多关系

问题描述

我试图弄清楚如何在我的火车表和车站表之间创建多对多关系。我知道我需要一个中间表,我创建了它我觉得我正在循环思考要做什么。我将有一个指向数据的链接,该链接解释了我的表和下面的架构之间的关系。我在此数据中查看的唯一列是:

“GTFS_STOP_ID”(Stop_Name 的 ID 代码)、“Stop_Name”(火车站名称)和“Daytime Route”(即列车)

-一趟列车可以有多站,一站也可以有多趟列车,这就是为什么在“白天路线”一栏中可以看到多趟列车的原因。(例如,N,W 为第一行)

- 我将如何在我的 SQLITE 数据库中准确地描述我的 csv 中这 3 列之间的关系?

链接到数据(提前为 csv 道歉,因为这是我唯一能在网上找到的东西

     cur.execute("""DROP TABLE IF EXISTS train""")
     cur.execute(
     """     CREATE TABLE train(
            pk INTEGER PRIMARY KEY AUTOINCREMENT,
            train_name VARCHAR
        );""")

    cur.execute("""DROP TABLE IF EXISTS station""")
    cur.execute(
    """     CREATE TABLE station(
            pk INTEGER PRIMARY KEY AUTOINCREMENT,
            stop_id VARCHAR,
            station_name VARCHAR

        );""")

    cur.execute("""DROP TABLE IF EXISTS train_station""")
    cur.execute(
    """     CREATE TABLE train_station(
            train_pk INTEGER,
            station_pk INTEGER,
            FOREIGN KEY (station_pk) REFERENCES station(pk)
            FOREIGN KEY (train_pk) REFERENCES train(pk)

        );"""
        )

标签: pythonsqlsqlitemany-to-manygtfs

解决方案


推荐阅读