var str = 'Недалеко от Перта находится {object/100:Драммон Касл}, окруженный прекрасными садами. {object/101: что-то другое}';
var replaceStrs = [
"{object/101: что-то другое}",
"{object/100:Драммон Касл}",
].map(e=> {
let n = e.match("object/(\\d+)\s*:\s*([^}]+)");
return "\{object/("+n[1]+"):("+n[2]+")\}";
});
replaceStrs.forEach((e)=>{
str = str.replace(new RegExp(e,"gm"),'<a href="{% url \'tipsfortrip:routes:route-detail\' pk=$1 %}">\n$2\n</a>')
});
var str = 'Недалеко от Перта находится {object/100:Драммон Касл}, окруженный прекрасными садами. {object/101: что-то другое}';
var replaceStrs = [
"\{object/(101): (что-то другое)\}",
"\{object/(100):(Драммон Касл)\}",
];
replaceStrs.forEach((e)=>{
str = str.replace(new RegExp(e,"gm"),'<a href="{% url \'tipsfortrip:routes:route-detail\' pk=$1 %}">\n$2\n</a>')
});
var str = 'Недалеко от Перта находится {object/100:Драммон Касл}, окруженный прекрасными садами. {object/101: что-то другое}';
var replaceStrs = [
"\{object/101: (что-то другое)\}",
"\{object/100:(Драммон Касл)\}",
];
replaceStrs.forEach((e)=>{
str = str.replace(new RegExp(e,"gm"),'<a href="{% url \'tipsfortrip:routes:route-detail\' pk=100 %}">\n$1\n</a>')
});
Мы не говорили не о какой структуре, это ответ на
А вопрос был вообще в другом, ну по крайней мере как я его понял. Есть поле tags, с забитыми тегами через запятую, нужно оптимально организовать выдачу. Всё! Зачем предлагать вариант огранизации если уже реализована кривая организация, уже забита база и написан функционал, не будет же он все переписывать, перепарсивать и переделывать.
А если мы говорим про скорость. То такая организация как предложена выше, самая примитивная и банальная, я думаю автор сам до нее может догадаться. Если у вас интернет магазин в котором тысяча товаров с тегами и не большая частота запросов то этого хватит, а дальше уже как минимум нужен хотя-бы какой нибудь кеш, хотя-бы самописный, одной организацией баз данных тут не справишься. Всё зависит от нагрузки.