Я пытаюсь создать таблицу строк, каждая строка может каким-то образом соотноситься с другой строкой.
На практическом уровне мы говорим о слоях почвы (археология).
Одна строка - один слой - выше другого уровня, по существу, A выше B выше C, равно C ниже B ниже A. В графической базе данных это было бы очень тривиально, к сожалению, мы используем реляционная база данных. У каждого корабля отношений есть направление, A выше B, но B не выше A. Данные будут добавлены, так как A выше B, хотя мы можем искать и находить то, что выше B, с явной или без явной информации об этих отношениях. , если A выше B, то B должно быть ниже A. Еще одним осложнением является то, что D может быть равно E, так как в нем то же самое, что и D = E и E = D, однако это не направление, поскольку соотношение истинно в обоих направлениях.
Итак, вот логика c.
Но каков наилучший способ разработки некоторых таблиц, позволяющих это сделать? Я должен отметить, что мы используем PostgreSQL и Django.
Ниже приведен базовый пример c.
Table name: Layer
id
Layer_name
Я предполагаю, что нам нужна вторая таблица, подобная следующей:
Table name: Relationship
id
layer_id1
relationship
layer_id2
Я также видел использование ССЫЛКИ для ненаправленных отношений, как указано здесь .
Я упоминаю, что мы используем Django, может ли / должен ли интерфейс выполнять какие-либо действия по дезинфекции или трюки, такие как операторы if, если A выше B, тогда также введите B ниже A, если A = B или B = A введите только A = B.
Любой конструктивный совет приветствуется.