У меня есть куча X в базе данных MySQL. Некоторые X не сочетаются друг с другом, и я хочу таблицу, в которой хранятся все пары X, и логическое значение, показывающее, в порядке они или нет.
Эта часть достаточно проста:
CREATE TABLE good_x (
X_id_1 int(10) not null ,
X_id_2 int(10) not null ,
is_good tinyint(1)
) ;
Мой вопрос таков: учитывая, что Xsub1 и Xsub3 идут вместе.
SELECT is_good from good_x where X_id_1 = "Xsub1" and X_id_2 = "Xsub3" ;
Но что, если данные поступят в Xsub3, Xsub1? Я мог бы иметь две записи в таблице:
Xsub1,Xsub3,1
Xsub3,Xsub1,1
Но тогда вы должны отслеживать две вещи. В моем случае это контролируемый словарный запас, поэтому я не ожидаю больших изменений. Но если я захочу добавить третий X, Xsub5, вы получите шесть записей, с которыми нужно связываться.
Xsub1,Xsub3,Xsub5,1
Xsub1,Xsub5,Xsub3,1
Xsub3,Xsub1,Xsub5,1
Xsub3,Xsub5,Xsub1,1
Xsub5,Xsub1,Xsub3,1
Xsub5,Xsub3,Xsub1,1
Что трудно поддерживать.
Есть ли способ, которым я могу добавить группу X, два или более, и связать это с логическим значением, поэтому мне не нужно иметь отдельные таблицы для двойников, троек, четырехугольников, квинт и т. Д. возможно в любом SQL, и если да, то каков синтаксис?