Лучший способ создать мульти реляционную базу данных в моем сценарии - PullRequest
0 голосов
/ 07 декабря 2018

У меня проблемы с разработкой модели базы данных.

У меня есть таблицы TOUR и TRIP (обе с первичным ключом GUID), и обе имеют общие дочерние таблицы.Как DETAIL, COMMENT, MEDIA, PRICE и тому подобное.

Я думаю создать в этих дочерних таблицах какой-нибудь столбец «ParentId» для связи с TOUR или TRIP, но мне нужно знать, какая родительская таблица есть.Таким образом, я должен создать столбец "ParentType", где 1 - это TOUR, а 2 - это TRIP, или, возможно, создать TourDetail и TripDetail, чтобы связать каждую из них с другой таблицей?

Я ищу лучшие практикисделать это.

1 Ответ

0 голосов
/ 07 декабря 2018

С точки зрения дизайна, соглашение SQL состоит в том, что каждое отношение должно иметь свой собственный столбец в ссылочной таблице.Это концепция, если внешний ключ столбцы.

Таким образом, вам нужно создать два столбца в каждой дочерней таблице (DETAIL, COMMENT, MEDIA, PRICE), например TOUR_ID и TRIP_ID, которые будут содержать первичный ключ соответствующих записей в таблицах соответственно.TOUR и TRIP.Конечно, если потомки ссылаются только на одного родителя, а не на другого, необходим только один столбец.

Это позволит вам построить правильные JOIN запросы, такие как:

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