Первая модификация, которую вы можете сделать, чтобы избежать дублирования, - это создание уникального ключа в таблице source
в столбце resource
. Таким образом, даже если вы допустите ошибку в своем коде, база данных выдаст ошибку, если вы попытаетесь сохранить дубликат регистра.
С учетом вышесказанного, нет простого способа сохранить только объекты, которых нет в базе данных. Вы либо делаете столбец resource
своим основным ключом, а столбец id
выбрасываете (что я не считаю хорошим выбором), либо вам нужно сделать выбор в базе данных.
Этот вопрос содержит более подробную информацию о втором варианте
Если вы хотите изменить поток приложения, один из способов решения этой проблемы - разбить сохранение прокси на два этапа. , Сначала вы регистрируете все источники, а после сохранения всех источников вы начинаете регистрировать прокси. Таким образом, вы знаете, что когда вы сохраняете прокси-сервер, на нем уже будут предварительно сохранены все источники, что делает вашу работу на этом этапе только ссылкой на существующие источники в сущности Proxy
.
Если Вы надеетесь сохранять общую ширину таблицы, можно проверить его до сокрытия строки и явно установить свойство стиля ширины на это значение:
table.style.width = table.clientWidth + "px";
table.rows[3].style.display = "none";
Однако это может вызвать отдельные столбцы к обратному течению при сокрытии строки. Возможный способ смягчить это путем добавления стиля к таблице:
table {
table-layout: fixed;
}
В CSS, table-layout: fixed;
на Вашей таблице дает браузеру команду соблюдать размеры, которые Вы указали для высот и ширин. Это обычно подавляет автоизменение размеров браузером, если Вы не дали подсказок относительно предпочтительных размеров Ваших строк и столбцов.
Для ссылки решение levik работает отлично. В моем случае, с помощью jQuery, выглядело примерно так решение:
$('#tableId').width($('#tableId').width());
Можно сделать это с помощью чистого HTML
<table border="1">
<colgroup>
<col width="150px" />
<col width="10px" />
<col width="220px" />
</colgroup>
<tr>
<td valign="top">1</td>
<td> </td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td> </td>
<td>4</td>
</tr>
</table>