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

Best way to create a multi relational database in my scenario

我在开发数据库模型时遇到问题。

我有 tables TOUR 和 TRIP(都带有 GUID 主键)并且都有一些 children tables 的共同点。喜欢细节、评论、媒体、价格等等。

我正在考虑在那些 children table 中创建一些 "ParentId" 列到 link 与 TOUR 或 TRIP,但我需要知道哪个 parent table 是。通过这种方式,我应该创建一个列 "ParentType",其中 1 是 TOUR,2 是 TRIP,或者创建一个 TourDetail 和一个 TripDetail 到 link 每个 table?

我正在寻找执行此操作的最佳实践。

在设计方面,SQL 约定是每个关系在引用 table 中都应该有自己的列。这就是 外键 列的概念。

因此您需要在每个子项中创建两列 table(DETAIL、COMMENT、MEDIA、PRICE),例如 TOUR_IDTRIP_ID,它们将包含分别记录在table和TOURTRIP中。当然如果一个children只引用一个parent而不引用另外一个parent,那么只需要一栏。

这将允许您构建适当的 JOIN 查询,例如:

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