关于(overcomplex?)模式的SQL体系结构建议
我目前处于数据库设计阶段,正在开发我们产品的一个新部分。对此,我需要进行“理智检查”或一些建议,因为我对设置的某些部分不太自信 一点背景信息 我们正在开发的产品是所谓的“营销ROI最大化系统”。它处理大数据并处理/增强/丰富大量信息,然后再将其发送到不同的营销渠道。简而言之,这就是它的基本功能 问题域 该系统目前还没有完全具备良好的数据验证功能,每天都被“营销”人员和我们称之为“自助服务”的客户“滥用”。我们的首席执行官考虑到了新的谷歌产品列表广告网络,我的任务是提出一个关于如何处理{信息/数据}用于谷歌购物频道的好解决方案(称之为PLA;产品列表广告) 这就是问题所在:关于(overcomplex?)模式的SQL体系结构建议,sql,schema,Sql,Schema,我目前处于数据库设计阶段,正在开发我们产品的一个新部分。对此,我需要进行“理智检查”或一些建议,因为我对设置的某些部分不太自信 一点背景信息 我们正在开发的产品是所谓的“营销ROI最大化系统”。它处理大数据并处理/增强/丰富大量信息,然后再将其发送到不同的营销渠道。简而言之,这就是它的基本功能 问题域 该系统目前还没有完全具备良好的数据验证功能,每天都被“营销”人员和我们称之为“自助服务”的客户“滥用”。我们的首席执行官考虑到了新的谷歌产品列表广告网络,我的任务是提出一个关于如何处理{信息/数据
我们的产品不提供任何形式的验证(阅读:遵守网络特定要求),PLA基本上通过项目分类(每个类别定义了必需/可选字段)完全围绕数据完整性展开,每个字段可以或应该采用特定格式(甚至可能取决于链接的类别;我还不知道:P) 你猜对了,我们现在的设置有点搞砸了。只是不可能执行这些“严格的”产品反馈。通过让我们的营销人员和自助服务客户创建数据并将数据发送给PLA,意味着99%的时间都在寻找错误/解决问题。由于它只是一家小公司,我更愿意研究真正的问题。这意味着,尝试创建一个真正的验证系统,用于PLA营销活动 需要做什么 我一直在与我们的营销人员和客户交谈,以了解什么是用例,什么是需求。这些可以总结在以下列表项中:
- 输入提要中的每个项目都需要映射到“Categorized”到google PLA类别(请参阅“链接”部分以查看可以映射到哪些类别)
- 需要按照“类别”的每个字段设置验证
- 每个项目的每个字段都需要分配/映射到选定类别中定义的字段
;一种定义“类别”的抽象方式,想想PLA类别模式
;字段定义(在字段
)架构中
;一包类型。(主要用于给上述字段提供一些数据完整性)数据类型
;一包约束定义(不是实现!)valueConstraints
valueConstraints
通过一个N:M表(datatype\u valueConstraints
)绑定到一个数据类型,但是几乎每个用户生成的数据类型都只由可用的valueConstraints的一个子集组成,拥有一个可以包含“Email”的“Price”数据类型是没有意义的“约束..但是,有一个“最小”和“最大”约束是有意义的,因为价格总是一个数字。为了清楚起见:datatype\u valueConstraints
保留了每个数据类型的“可能的”valueConstraints
primitiveType->constraintValue关系也会出现同样的问题。基本上,数据类型必须包含“primitiveType”(在我的例子中是primitiveType表的外键).基本类型管理要从中选择的值约束
。基本类型
和值约束
不被认为是用户生成的,因此它现在是夹具数据
不明白吗?下面是一个示例工作流(“PLA/clothing”模式的(部分)设置):
- 添加数据类型“image”,将{primitive type设置为TEXT}
- 选择以下要使用的
(特定于文本)ValueConstraints
- “URL”(确保它是http | https或类似的东西,dunno)
- “MinLength”(确保它在那里)
- “Regex”(允许某些图像扩展..或类似的内容)
- 选择以下要使用的
- 添加字段定义“imageURL”,将{datatype设置为“image”}
- 特定于数据类型的配置,即填充约束断言数据(与EAV模式相关)。“MinLength”=14,“Regex”=“*(gif | jpg | png)”等等
valueConstraints
正确设置数据类型后,我们可以对模式中的多个字段使用数据类型“image”(如果我们愿意)。例如,“PLA/CLOTHING”模式可能需要一个“附加图像”字段。现在,通过使用可能具有不同约束配置的“image”数据类型,这是完全可能的
显示关系的可视化SQL表布局(关于abov的脑波)