Генерирование Sugar CRM «неверно» Идентификаторы GUID

В соответствии с Вот Sugar CRM использует GUID для ПК и FK

По умолчанию Sugar использует глобально уникальные значения идентификации (GUID)
для первичных ключей для всех записей базы данных

Однако они не являются истинными идентификаторами GUID, по крайней мере, в определенном смысле. Вот, как при отладке проблемы, я получил ошибку синтаксического анализа (через JSON.NET, как это происходит, но эту проблему легко можно было бы воспроизвести самостоятельно)

Псевдо-GUID-нарушитель был «7f09zz7d-889a-1×19-825b-54s954665005», что, безусловно, неверно.

Глядя на таблицу базы данных, поле, содержащее эту запись, — это VARCHAR (36), а не UNIQUEIDENTIFIER. Это означает, что любой 36 символов могут быть добавлены туда. Пока все хорошо — для Sugar CRM.

Проблема возникает, когда вы пытаетесь использовать этот «GUID» с точки зрения .NET (например, Guid.Parse()) или SQL Server, используя поле, действительно правильно определенное как UNIQUEIDENTIFIER.

Это приводит к двум проблемам на самом деле:

  1. Как я могу заставить Sugar CRM генерировать совместимые GUID? Имея в виду, я научился писать PHP за 5 минут до ввода этого вопроса. PHP кажется, имеет com_create_guid функция, но я не знаю, если (или где) сахар использует его

  2. Кто-нибудь может порекомендовать стратегию для существующих ценностей, которые могут не соответствовать? Добавление обнуляемого столбца UNIQUEIDENTIFIER и вставка значений из существующего столбца VARCHAR и обработка исключений в каждом конкретном случае — это единственный способ, который я могу себе представить.

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]