в данном конкретном случае эти таблицы никакую сущность не описывают.И? Сегодня не описывает, завтра описывает. Алсо, как я написал, есть готовые решения/фреймворки, требующие определенной структуры, в структуре полей в том числе. Наличие отдельного первичного автоинкрементного ключа в частности. Если сомневаешься ставить или нет - ставь. Если знаешь зачем не ставить - не ставь. Все просто.
Плюс - минус лишнее поле в таблице под суррогатный первичный ключ... это лишний индекс на таблицу связи, со всеми вытекающими последствиями.Оочень притянуто за уши. Единственная возможная проблема приходящая в голову - катастрофическая нехватка памяти/места на сервере. Ну или нагрузка по записи в пивот такая, что 2 индекса уже не вывозит (больше из области "чем вы думали при выборе инструмента" или реально кривое проектирование).
Best practices применять слепо не следует, иногда, наоборот, "аннти-паттерны" оказываются более применимы к конкретным условиям.Рано. На базовом уровне лучше именно фигачить по бестпрактисам, когда уровень вырастет до условного понимания "как все оно между собой е**тся" можно уже и творчески подходить к процессу.
tracert domen.tld
Ты конкретный шрифт под защитой попробуй выцепи.Так там и нету этого шрифта. Тебе присылают картинку, рендеренную на стороне сервера. По этому шрифт не попадает на компьютер пользователя. Если у тебя есть текст написанный этим шрифтом, то никаких проблем нет.
"Здесь длинный <br> текст"
действительно длинный текст какой-то фигней, нормальнов жсон не кладущийся. Хотя код нам так и не показали... let cont1 = {
"line1":"Здесь длинный <br> текст",
"line2":"Кликните по <a href='https://google.com'>ссылке</a>"
};
console.log(cont1.line1 + cont1.line2);
//Здесь&nbsp;длинный <br> текстКликните по <a href='https://google.com'>ссылке</a>"