根据here糖,CRM使用GUID进行PK和FK需求
默认情况下,Sugar使用全局唯一标识值(GUID) 用于所有数据库记录的主键
然而,它们不是真正的GUID,至少在定义here的意义上,因为在调试问题时我得到了解析错误(通过JSON.NET发生,但同样的问题很容易复制)自己)
违规的伪GUID是“7f09zz7d-889a-1x19-825b-54s954665005”,这肯定是不正确的。
查看数据库表,保存此记录的字段是VARCHAR(36),而不是UNIQUEIDENTIFIER。这意味着任何 36个字符都可以在那里拼写。到目前为止,非常好 - 对于Sugar CRM而言。
当您尝试从.NET透视图(例如Guid.Parse()
)或SQL Server使用实际正确定义为UNIQUEIDENTIFIER的字段时使用此“GUID”时,会出现此问题。
这实际上导致了两个问题:
如何让Sugar CRM生成符合标准的GUID?记住我在键入这个问题之前已经学会了大约5分钟拼写PHP。 PHP appears to have一个com_create_guid
函数,但我不知道Sugar是否(或在哪里)使用它
任何人都可以推荐可能不符合的现有值的策略吗?添加一个可为空的UNIQUEIDENTIFIER列并插入现有VARCHAR列中的值并根据具体情况处理异常是我能想到处理它的唯一方法。