我需要在通用查询中利用客户属性。我从 Server Management Studio 中的原始 SQL 开始设计我的大多数通用查询。我发现以这种方式定位我需要的数据要容易得多。但是,我很难弄清楚属性如何与客户联系在一起。属性被添加到客户类,然后客户与客户类相关联。这允许客户可以修改该客户类可用的任何属性。
使用数据库,我发现以下内容:
- 单独的 Attribute 对象存储在
CSAttribute
表中 - 属性的选项(例如组合框)存储在
CSAttributeDetail
表中 - 每个属性的单独实例存储在
CSAnswers
表中 - 还有一个
CSAttributeGroup
表,我相信它会将CSAttributeDetail
记录与CSAttribute
记录相关联。
因此,人们会期望该CSAnswers
表对答案所附的客户有参考……但事实并非如此。该表定义为:
- CompanyID (PK, int, not null)
- RefNoteID(PK,唯一标识符,不为空)
- AttributeID(PK,nvarchar(10),不为空)
- 值(nvarchar(255),空)
雪上加霜的是,数据库中的表名并不总是与通用查询中可用的内容一一对应。例如,ARInvoice
GI 中可用的许多字段实际上存储在ARRegister
数据库的表中。我怀疑属性正在发生非常相似的事情。
谁能指出我在数据库级别和 GI 级别定位属性如何与客户相关联的正确方向?