在我的场景中创建多关系数据库的最佳方法

8wtpewkr  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(300)

我在开发数据库模型时遇到了麻烦。
我有tour和trip表(都带有guid主键),它们都有一些共同的子表。比如细节,评论,媒体,价格等等。
我想在那些子表中创建一些“parentid”列来链接tour或trip,但我需要知道哪个是父表。以这种方式,我应该创建一列“parenttype”,其中1是tour,2是trip,或者创建一个tourdetail和一个tripdetail来链接每个表和其他表?
我正在寻找最好的实践来做到这一点。

ws51t4hk

ws51t4hk1#

在设计方面,sql约定是每个关系在引用表中都应该有自己的列。这就是外键列的概念。
因此,您需要在每个子表中创建两列(detail、comment、media、price),如 TOUR_ID 以及 TRIP_ID 它将分别包含表中相应记录的主键 TOUR 以及 TRIP . 当然,如果子级只引用一个父级而不引用另一个父级,则只需要一列。
这将允许你建立适当的 JOIN 查询如下:

SELECT
    ...
FROM TRIP
    JOIN DETAIL on DETAIL.TRIP_ID = TRIP.ID
    ...
WHERE
    ...

相关问题