Add table for manual route construction#100
Add table for manual route construction#100pivovarvalera wants to merge 8 commits intochart_parametersfrom
Conversation
…ed deferrable constraint for order
| CONSTRAINT route_point_pol_fk FOREIGN KEY (pol_id) REFERENCES waypoint (id), | ||
| CONSTRAINT route_point_pod_fk FOREIGN KEY (pod_id) REFERENCES waypoint (id), |
There was a problem hiding this comment.
Давай рассмотрим вариант, чтобы вместо ссылки на waypoint ссылаться на port?
Чтобы была возможность сохранять маршруты между портами, и автоматом доставать прошлые пути следования судна
Дополнительно тогда стоит добавить в эту таблицу поля project_id и ship_id? (по аналогии с другими таблицами), ship_id например нужен чтобы не получить маршрут другого судна (судна могут значительно отличаться по размеру, что может влиять на то, где оно может пройти)
…ue value, references on port table
| CREATE TABLE IF NOT EXISTS route_point ( | ||
| id INT GENERATED ALWAYS AS IDENTITY, -- ID of the route point | ||
| project_id INT, -- ID of the project | ||
| ship_id INT, -- ID of the ship |
There was a problem hiding this comment.
Если смотреть на другие таблицы, то ship_id в них задается как NOT NULL
| CONSTRAINT route_point_pk PRIMARY KEY (id), | ||
| CONSTRAINT route_point_pol_fk FOREIGN KEY (pol_id) REFERENCES port (id), | ||
| CONSTRAINT route_point_pod_fk FOREIGN KEY (pod_id) REFERENCES port (id), | ||
| CONSTRAINT unique_route_point_order UNIQUE (project_id, ship_id, pol_id, pod_id, point_order) DEFERRABLE INITIALLY DEFERRED |
There was a problem hiding this comment.
В postgresql NULL является значением, которое не равно любому другому (даже себе), из-за этого это ограничение UNIQUE по идее никогда не отклонит наборы данных, даже с одинаковыми значениями
В общем случае, для проверки на NULL можно к прмеру использовать выражение DISTINCT
Конкретно в этом случае используется следующим образом https://www.postgresql.org/about/featurematrix/detail/unique-nulls-not-distinct/
There was a problem hiding this comment.
добавила NULLS NOT DISTINCT
…S NOT DISTINCT in UNIQUE CONSTRAINT
Closes #99