Как правильно хранить данные матричного соотношения в бд?
Добрый день, коллеги! Сломал голову, не могу найти верное решение:
Как правильно хранить данные в бд, которые матрично относятся друг к другу? Например есть три пункта назначения - А, Б и В. Расстояние а-б = 100, а-в = 200, б-в = 250. Отсюда следует что маршрут б-а = а-б и так далее. Как правильно хранить такую информацию, чтобы не дублировать записи, и запрашивая а-б/б-а маршрут обращаться к одному и тому же объекту?
Если я вас правильно понял то маршрут это не то же самое что и матричные отношения.
Маршруты строятся на основе матричных отношений расстояний множества пунктов назначения друг ко другу.
Это и можно было бы хранить в виде json : {a : {b:200, c:300}}
//...
А маршруты уже строятся в виде последовательности имен точек назначения, так? Их не обязательно в json
sim3x: Но при таком построении мне придется дублировать эти маршруты. А в идеале хочется что-то придумать, чтобы не дублировать. В реальности этой задачи маршруты а-б и б-а будут иметь равную длину.