Я относительно новичок в разработке базы данных, и мне интересно, каков канонический способ реализации отношения многих и многих между строками в одной таблице.От многих до многих отношений в одной таблице?
В моем случае у меня есть таблица формул, и я хочу сказать, что две формулы в таблице, относится:
формулы таблица:
formula_id SERIAL PRIMARY KEY
name TEXT NOT NULL
formula TEXT NOT NULL
Я предполагаю, что я хотел бы сделать новую таблицу называемые related_formulas, а затем сделать что-то вроде:
formula_relation_id SERIAL PRIMARY KEY
formula_id INT REFERENCES formulas (formula_id) ON DELETE CASCADE
formula_id2 INT REFERENCES formulas (formula_id) ON DELETE CASCADE
но потом предвидеть такие проблемы, как предотвращение двух идентификаторов в той же строке из, имеющих одинаковое значение. Я уверен, что есть и другие потенциальные проблемы, которые я не вижу из-за своей собственной неопытности.
Может ли кто-нибудь указать мне в правильном направлении?
Как установить и формулу формулы и формулу в качестве первичных ключей, и использовать ту же формулу формулы для соответствующих формул? – Ray
Это будет работать, если отношение эквивалентно, поэтому все члены класса эквивалентности имеют идентификатор; но отношение не обязательно эквивалентно. Например, «связанный с» не должен быть транзитивным: если 'i' связано с' A [i] 'и' A [i] ', относящимся к' A', 'i' не обязательно связано с' A '. – Amadan
Почему две идентификаторы в одной строке не имеют одинакового значения? Или вы говорите, что могли, но не должны, и вы не знаете, как это предотвратить? – Amadan