SuperAPI AI 工具集

mysql-data-modeling

数据与分析

查看项目

更新于 10-16 10:51

技能介绍

用途

本技能提供来自 Silverston《The Data Model Resource Book》第 1、2 卷的通用 SaaS 数据建模模式,用于设计人员/组织、产品、订单、发票、人力资源或会计等领域的数据库模式。当任务需要可复用的判断、领域约束或成熟工作流,而不是临时性建议时适用。

主要能力

  • Party 模型:用 party 作为超类型,person 与 organisation 作为子类型,避免把客户、员工、供应商拆成多张表导致同一实体数据冲突。
  • Party 角色:身份与职能分离。party_type 不变,角色可多且可并存;角色用 party_role 行表示,活动角色条件为 thru_date IS NULL 或 thru_date >= CURDATE()。
  • Party 关系:角色之间带时间范围的连接,通过 party_relationship_type 和 party_relationship 表示。
  • 联系方式:用统一的 contact_mechanism 模式表达邮政地址、邮箱、电话、手机等,并可关联用途(BILLING、SHIPPING、PRIMARY)。
  • 产品分类层级:使用自引用的 product_category_rollup 表达父子分类,product_category_classification 的 primary_flag 避免报表重复计数。
  • 产品标识:一个产品可有多个编码,通过 good_identification_type 与 good_identification 实现。
  • 产品特性:不建变体表,通过 product_feature_type、product_feature 与 product_feature_applicability 表达颜色、尺寸、计费周期等特性及其适用性(REQUIRED、STANDARD、OPTIONAL、SELECTABLE)。
  • 价格组件:不在产品上硬编码价格,而用 price_component 配合日期范围、地区、客户类型、数量阶梯与币种表达。SaaS 示例中可用基础价格行加促销折扣行(percent = 20,thru_date = '2025-12-31')实现限时优惠,无需改代码。
  • 订单模型:order_header + order_item + order_role 结构,通过 order_role_type 区分下单方、账单客户、收货方、销售代表等角色;unit_price 在订单时锁定,不从产品派生。
  • 订单调整:折扣与税费以行表达,通过 order_adjustment 关联整单或具体明细。
  • 发票与部分计费:发票不是订单的复制。一个订单可对应多张发票(部分发货),order_item_billing 作为桥接表支持部分计费与多订单合并开票。
  • 付款核销:payment 与 payment_application 支持部分付款与超额付款,invoice_id 为 NULL 表示未核销的预付款。

使用方式

  1. 先阅读 SKILL.md,再按需加载必要的深入参考文件。
  2. 有序应用其中的指导、检查清单与决策规则,而不是零散挑选片段。
  3. 收集相关项目上下文、约束与具体问题。
  4. 确认期望交付物:设计、代码、评审、迁移计划、审计或文档。
  5. 产出结果时,在必要时显式说明假设、风险与后续工作。

适用场景

设计人员/组织、产品、订单、发票、HR 或会计相关数据库模式,以及需要成熟建模模式而非临时建议的任务。

限制与不适用情况

当任务与本技能无关,或更适合由更具体的配套技能处理时,不应使用本技能。若请求只需要简单答案,本技能的约束与参考对其帮助不大。反模式包括:不检查适配性、约束或失败模式就把示例当作可复制粘贴的真理;默认加载全部参考文件而不采用渐进式披露。质量要求为输出面向可执行、简洁、符合仓库基线工程标准,并在技能未明确要求更强标准时保持与既有项目约定兼容,优先确定、可评审的步骤而非模糊建议或工具专属魔法。