Re: прямая ссылка на результат поиска в web-Ирбис
Пользователь:
Игорь (IP-адрес скрыт)
Дата: 08, October, 2020 09:25
SokV написал(а):
Посмотрите в сторону MongoDB, она к ИРБИСу гораздо ближе, чем MSSQL
Поле GUID очень хорошо подходит для связывания записей, гораздо больше, чем связывание по "шифру документа", который в ряде случаев также может меняться, в том числе при экспорте-импорте.
Об этом тут уже писали.
-------------------------------------------------------
> В современных (и даже не очень) реляционных базах
> данных для полей таблиц, где это необходимо, можно
> создать соответствующие этим полям объекты,
> которые могут обеспечивать уникальность значений
> поля для всего набора записей, запрещая добавлять
> неуникальные значения. Или же не только следить, а
> генерировать новые уникальные значения, при
> добавлении новых записей, например, в виде целых
> чисел (последовательно или в случайном порядке),
> или же гуид. Эти специальные объекты в разных
> базах реализуются и называются по разному: индекс,
> последовательность, специальный тип данных поля в
> таблице.
>
> В ИРБИС сейчас нет специального механизма, защиты,
> обеспечивающей невозможность вставить неуникальные
> значения в каком то поле в разных записях. В этом
> разница. С этим и связаны опасения получить
> неуникальные значения GUID.
>
> Однако, в любых базах, и во "взрослых" базах тоже,
> механизмы, касающиеся создания ключей, и
> связывания по ним записей, предназначены для того,
> чтобы работать в рамках базы данных. Одной базы
> данных.
>
> Вопросы выгрузки записей вместе с их ключами,
> идентификаторами из базы, и загрузки данных извне,
> всегда сопровождаются всякими нетривиальными
> моментами, особенно если перенос осуществляется
> порциями, и тем более, если данные правятся между
> выгрузками-загрузками. Это естественно, и это не
> техническая проблема уровня программного
> обеспечения. Это вопрос модели данных и сохранения
> целостности данных при переносах.
>
> Озвученное вами решение, если я правильно вас
> понял, загружать GUID, а в случае дублирования,
> создавать новый GUID, довольно странное. Это может
> быть правильным в одних случаях, и неправильным в
> других. Например, в MSSQL, если есть поле с ключём
> IDENTITY, то при вставке записей, нельзя давать
> свои значения для этого поля. Вместо этого будут
> присваиваться автоматически гернерируемые
> уникальные значения. Есть исключение из этого
> правила, можно включить специальный режим на время
> вставки, при этом будут разрешены вставки записей
> со своими явно указанными значениями в то самое
> поле типа IDENTITY. Никакого автоматического "или
> так или сяк" на уровне базы данных. И я вообще не
> уверен, что в любых современных базах, как в
> MSSQL, есть возможность вставки своих значений в
> поле, определенное как первичный ключ. Везде
> вопросы переноса данных, конечно же, решаются,
> так, или иначе, учитывая определенные нюансы.
>
> Тривиальным вопрос переносов становится, если
> нужно сделать полную копию, клон базы данных, в
> которой в этот момент никто не работает. Это легко
> сделать в ИРБИС.
>
Всегда поражался позиции разработчиков ИРБИСа.
Вы, судя по всему, до сих пор ИРБИС делаете исключительно для и под себя.
> Насчёт велосипеда - GUID внутренний механизм, не
> был сделан для вас. Зачем вы сели на этот
> велосипед? :-) В любом случае, интерес играет
> большую роль, благодаря этому интересу от
> пользователей, как выше было написано, механизм
> будет совершенствоваться.