我在开发数据库模型时遇到了麻烦。
我有tour和trip表(都带有guid主键),它们都有一些共同的子表。比如细节,评论,媒体,价格等等。
我想在那些子表中创建一些“parentid”列来链接tour或trip,但我需要知道哪个是父表。以这种方式,我应该创建一列“parenttype”,其中1是tour,2是trip,或者创建一个tourdetail和一个tripdetail来链接每个表和其他表?
我正在寻找最好的实践来做到这一点。
我在开发数据库模型时遇到了麻烦。
我有tour和trip表(都带有guid主键),它们都有一些共同的子表。比如细节,评论,媒体,价格等等。
我想在那些子表中创建一些“parentid”列来链接tour或trip,但我需要知道哪个是父表。以这种方式,我应该创建一列“parenttype”,其中1是tour,2是trip,或者创建一个tourdetail和一个tripdetail来链接每个表和其他表?
我正在寻找最好的实践来做到这一点。
1条答案
按热度按时间ws51t4hk1#
在设计方面,sql约定是每个关系在引用表中都应该有自己的列。这就是外键列的概念。
因此,您需要在每个子表中创建两列(detail、comment、media、price),如
TOUR_ID
以及TRIP_ID
它将分别包含表中相应记录的主键TOUR
以及TRIP
. 当然,如果子级只引用一个父级而不引用另一个父级,则只需要一列。这将允许你建立适当的
JOIN
查询如下: