db-schema-from-requirements
1
总安装量
1
周安装量
#77474
全站排名
安装命令
npx skills add https://github.com/go-sphere/skills --skill db-schema-from-requirements
Agent 安装分布
mcpjam
1
claude-code
1
replit
1
junie
1
windsurf
1
zencoder
1
Skill 文档
DB Schema From Requirements
å°éæ±è¾å
¥æ´çæå¯ç´æ¥è½å°å° sphere-layout ç DB schema æ¹æ¡ï¼å¼ºè°å¯æ§è¡æ§ä¸å¯å®¡æ¥æ§ã
AI-First Workflow
- Gather inputs from all available sources.
- 读åæç¤ºè¯ãéæ±ææ¡£ï¼
.mdï¼ãæ¥å£å®ä¹ï¼.protoï¼ãç°æ schemaãservice/dao/render 代ç ã - 妿 demo è¡ä¸ºï¼å æ½å对象ãç¶ææµè½¬ãå ³é®å¨ä½ã
- Extract entities and lifecycle.
- ä»ä¸å¡åè¯ä¸ API èµæºæ½åéå®ä½ã
- æ¯ä¸ªå®ä½æç¡®ï¼status/stateãå ³é®æ¶é´ç¹ãå ³é®çº¦æã
- ä» å¨æç¡®å¿ è¦æ¶æè¡¨ï¼å¯éåæ®µç»ãä½é¢å¤§å段ãåçç¹å²çªï¼ã
- Design fields and null strategy.
- schema ä¸å ³é®åæ®µå¿ é¡»æä¸å¡æ³¨éã
- æ¯ä¸ªåæ®µå¿ é¡»æç¡® Optional/Nillable/Unique/Immutable/Defaultã
- ç¶æåæ®µä½¿ç¨ Ent åç
field.Enumï¼å¹¶è®¾ç½®é»è®¤å¼ã - ç»ä¸
created_at/updated_atï¼ä» å¨éè¦è½¯å æ¶æ·»ådeleted_atã - 缺失è¯ä¹ä¼å
NULLï¼é¿å 空å符串å¨å µã
- Apply ID policy.
- é»è®¤ä¸å¨ schema æå
idã - ä¼å ä½¿ç¨ ent generator éä¸ ID é ç½®ã
- ä»
å¨ä¸å¡æç¡®éè¦æ¶æåèªå®ä¹
idï¼å¹¶è¯´æå¯¹ bind/proto çå½±åã
- Choose relation strategy.
- å
³ç³»å段ä¼å
å¼±å
³è IDï¼å¦
user_id/order_idï¼ã - many-to-many ä¼å 级åºå®ï¼relation-entity > array(确认æ¹è¨æ¯æ) > join table > JSON(æåå åº)ã
- JSON 䏿¯å¸¸è§æ¹æ¡ï¼å¿ é¡»åæ typed/array/join table ä¸å¯è¡åå ã
- Plan indexes from real query paths.
- åºäºçå® list/filter/sort/query 使ç¨è·¯å¾è®¾è®¡ç´¢å¼ã
- ä¼å 主é®/å¯ä¸ãé«éæ©æ§è¿æ»¤ãå页æåºå¤åç´¢å¼ã
- é¿å ä» å»ºä½åºæ° status ååç´¢å¼ï¼é¤éææç¡®æ¶çï¼ã
- Produce Ent + Go implementation guidance.
- Ent ä¾§ä¼å ID åæ®µè¡¨è¾¾å ³ç³»ï¼ä¸å¼ºå¶ edgeã
- Go ä¾§ç»åºæ¹éæ¥è¯¢æ¹æ¡ï¼æ¶é IDs -> å»é ->
IDIn(...)-> map åå¡«ã - IDs å¾å¤§æ¶ç»åº chunk çç¥ä¸è·¨æå¡
BatchGet*建议ã
- Add evolution and consistency safeguards.
- 读ä¼åå¯å å¿«ç §åä½å段ï¼å¦ name/price snapshotï¼ã
- ä¼å typed/array ç»æï¼JSON åªä½ä¾å¤ã
- å¼±å ³èåºæ¯å¿ é¡»ç»åº dangling refs æ ¡éªç¹ã
Repository Contract (sphere-layout)
å¿ é¡»æ¾å¼å¯¹é½ä»¥ä¸çæé¾è·¯ä¸æ¥å ¥ç¹ï¼
- Ent çæå
¥å£ï¼
cmd/tools/ent/main.go - Bind/Mapper çæå
¥å£ï¼
cmd/tools/bind/main.go - ç»ä¸åç½®å½ä»¤ï¼
make gen/proto
è¾åºä¸å¿ é¡»å¤æå¹¶è¯´æï¼
ent tool config impactï¼IDType/ ent features / autoproto å½±åãbind registration impactï¼æ¯å¦éè¦æ´æ°createFilesConfãrender/dao/service touchpointsï¼åªäºå±è¦è¡¥ä»£ç ã
æ°å¢å®ä½å¿ æ¹æ¸ å
å¦ææ¹æ¡å¼å ¥æ°å®ä½ï¼å¿ é¡»éé¡¹æ£æ¥å¹¶å¨è¾åºä¸åæï¼
- æ° schema æä»¶ä¸å段/ç´¢å¼ã
cmd/tools/bind/main.goä¸createFilesConf注åã- render å±ï¼
entmap/entbindæ¶è´¹ç¹ï¼æ¥å ¥ã - DAO 屿¹éæ¥è¯¢ helper ä¸å»éçç¥ã
- service å±å页/æ¥è¯¢/æ å°æ¥å ¥ã
- çæå½ä»¤æ§è¡ä¸åæ´ diff æ¶è´¹ï¼entpb/proto/bind/mapï¼ã
失败å¤ç约æ
以䏿 åµä¸å 许è§ä¸ºå®æï¼
- åªæ¹ schemaï¼æªè¯ä¼°ææªè¯´æ bind 注åå½±åã
- æ¶åç»å®åæ®µä½æªè¡¥
WithIgnoreFieldså½±å说æï¼ä¾å¦created_at/updated_atæææåæ®µï¼ã - è¾åºç¼ºå° post-change commands æ generation diff checklistã
Output Format
ä½¿ç¨ references/output-template.mdã
æç»è¾åºå¿ é¡»å å«ï¼
- 11 æ®µç»æåå 容ã
- sphere-layout çæé¾è·¯å½±å说æã
- post-change commandsï¼è³å°
make gen/proto䏿µè¯å½ä»¤ï¼ã - generation diff checklistã
Resources
references/best-practices.mdreferences/output-template.mdreferences/go-ent-service-patterns.mdreferences/ent-schema-examples.md
Notes
- æ¬ skill æ¯ AI æ¨ç驱å¨ï¼ä¸ä¾èµæ¬å°èæ¬èªå¨çæè稿ã
- è¯è¨é»è®¤ä¸æè¯´æ + è±æææ¯å ³é®è¯ï¼å½ä»¤/ç±»å/API åä¸ç¿»è¯ï¼ã