Rövid útmutató: Terv mód használata a specifikációalapú adatbázis-tervezéshez

A Tervezési mód a Visual Studio Code egyik funkciója, amely lehetővé teszi, hogy a GitHub Copilot bármilyen módosítás végrehajtása nélkül átgondolja a kérést. Adatbázis tervezésekor a tervezési mód lefordít egy természetes nyelvű termékkövetelmény-dokumentumot (PRD) egy okalapú adatmodellre (táblák, kapcsolatok, csomóponttáblák, idegenkulcs-irányok és megkötések), mielőtt egyetlen CREATE TABLE utasítást ír. Ezután átadja a tervet ügynök módnak vagy sématervezőnek a tényleges séma létrehozásához.

Tip

Ha az SQL-adatdefiníciós nyelv (DDL) írása előtt gondolkodnia kell, használja a terv módot, különösen zöldmezős sémák vagy nagy refaktorok esetén. Egy táblát érintő módosításokhoz helyette a kérdezési módot használja.

A legfontosabb tudnivalók

  • A tervezési mód egy írásos tervet hoz létre (amelyet gyakran plan.md néven mentenek), amelyet a végrehajtás előtt áttekinthet.
  • A tervezési mód figyelembe veszi a sémát, ha a(z) @mssql csevegési résztvevővel együtt használja, vagy fájlokat csatol a(z) #file: használatával.
  • A terv mód párosítása egyéni utasításokkal , hogy a terv automatikusan örökölje a Transact-SQL (T-SQL) konvencióit.
  • A terv mód egy Visual Studio Code funkció, nem MSSQL-specifikus, de jól illeszkedik az adatbázis tervezéséhez.

Prerequisites

  • Visual Studio Code az MSSQL-bővítmény telepítve van.
  • Aktív GitHub Copilot-előfizetés, amelynél a tervmód elérhető a csevegési mód legördülő listájában.
  • Egy munkaterületmappa, ahol létrehozhat egy requirements.md fájlt.
  • Nem kötelező: céladatbázis-kapcsolat ügynök módú átadáshoz.
  • Nem kötelező: a T-SQL-konvenciókhoz tartozó egyéni utasítások fájlja.

Mi a tervezési mód?

A tervezési mód a Visual Studio Code egyik csevegési módja, a kérdezési mód, a szerkesztési mód és az ügynökmód mellett. Terv módban GitHub Copilot:

  • Beolvassa a kérést és minden csatolt kontextust.
  • Olyan írásos tervet hoz létre, amely ésszerű lépésekre bontja a munkát.
  • Nem módosít fájlokat és nem futtat eszközöket. A terv egy gondolkodó műtárgy, nem pedig végrehajtás.

Ezután válthat ügynök módra (vagy Sématervezőre) a terv végrehajtásához. Az általános dokumentációért lásd: A Visual Studio Code csevegési módjai.

Miért illik a terv mód az adatbázis-tervezéshez?

Az adatmodellek döntései összetettek. A kapcsolótáblák, az idegen kulcsok iránya, a naplózási oszlopok és a normalizálási döntések könnyebben módosíthatók egy Markdown-tervben, mint a közzétett DDL-ben. A Terv mód lehetővé teszi a következőket:

  • A tervezés ellenőrzése az építés előtt. Tekintse át a javasolt sémát, tolja vissza a kérdéses lehetőségeket, és iterálja a tervet.
  • Rejtett kapcsolatok megjelenítése. A tervezési mód olyan kapcsolótáblákat és sok-sok kapcsolatokat is megjelenít, amelyeket nem kért kifejezetten.
  • Különítsd el a specifikációt a végrehajtástól. A PRD termékoldali marad; a terv lesz a műszaki összetevő; A DDL lesz a termék.

Végponttól végpontig forgatókönyv: TaskManager-séma

Ez a gyorsútmutató végigvezet egy teljes folyamaton: természetes nyelvű PRD → egy Markdown-formátumú terv → a Schema Designerben létrehozott táblák.

1. lépés: Termékkövetelmény-dokumentum létrehozása

Hozza létre a(z) requirements.md fájlt a munkaterület gyökérkönyvtárában. Írja le az alkalmazást természetes nyelven, beleértve a tartományi entitásokat, kapcsolatokat és üzleti szabályokat. A dokumentum termékközpontú maradjon. Ne adjon meg oszloptípusokat vagy korlátozásokat (erre vonatkozik az egyéni utasítások fájlja).

# TaskManager - Product Specification

## Overview
A task management application for small development teams. Supports user
registration, role-based project membership, task tracking with multi-assignee
support, and team collaboration.

## User management
- Users register with email, username, first and last name, hashed password.
- Email and username must be unique across the system.
- Users can be deactivated (soft delete) rather than removed.
- A user can belong to multiple projects, each with a role: owner, admin, or member.

## Project management
- Projects have a name, description, and active/inactive status.
- Each project tracks who created it.
- Project membership is role-based - one entry per user per project.

## Task tracking
- Tasks belong to exactly one project.
- Required: title. Optional: description, due date.
- Status must be one of: todo, in-progress, done.
- Priority must be one of: low, medium, high, critical.
- Tasks can be assigned to multiple team members.

## Collaboration
- Team members can comment on tasks.
- Comments are text-based, tied to both a task and the author.

## Data integrity
- Every record must track when it was created and last updated.
- All relationships must enforce referential integrity.
- Deletes should be restricted (no orphan records).
- Status and priority fields must only accept valid values.

2. lépés: A GitHub Copilot Chat váltása terv módra

  1. Nyissa meg a GitHub Copilot Chat nézetet.
  2. A csevegési mód legördülő listájában válassza a Terv lehetőséget.

3. lépés: A PRD elküldése tervezési módba

Csatolja a(z) requirements.md elemet kontextusként, akár úgy, hogy a fájlt a csevegési beviteli mezőbe húzza, a(z) #file:requirements.md használatával, vagy a csatolás gomb kiválasztásával.

Based on the requirements document, think through the full data model:
identify all tables, relationships, junction tables, and constraints.
Save the plan so I can use it in the next step.

A GitHub Copilot egy megalapozott tervet készít, és plan.md néven menti a munkaterületére. A terv általában a következőket tartalmazza:

  • A táblák listája a céljukkal
  • Kapcsolatok (egy-a-többhöz, több-a-többhöz) és az ezeket lehetővé tevő kapcsolótáblák
  • A PRD-ben meghatározott üzleti szabályokat kikényszerítő megszorítások (egyedi, ellenőrző, külső kulcs)
  • Nyitott kérdések vagy feltételezések, amelyekre a terv támaszkodik

A folytatás előtt tekintse át a tervet. Ha hiányzik egy kapcsolat, vagy egy korlátozás hibás, tervezési módban küldjön további promptokat az iteráláshoz. A tervezési mód állapotmentes és költséghatékony, ezért természetes, hogy több finomítási körre is sor kerül.

4. lépés: A terv átadása ügynök módba vagy sématervezőbe

A terv helyes olvasása után váltson ügynök üzemmódra, és hozza létre a sémát.

  1. A csevegési mód legördülő listájában válassza az Ügynök lehetőséget.
  2. Küldjön egy kérést, amely a tervfájlra és a célfelületre hivatkozik:
Based on #file:plan.md, use Schema Designer to create all the tables
and relationships in my database. Focus on the database schema only -
skip any application layer items from the plan.

Az Ügynök mód megnyitja a Sématervezőt, és minden táblát létrehoz, és minden lépésnél jóváhagyást kér. Az egyéni utasítások automatikusan érvényesek: az oszlopok elnevezése, a naplózási oszlopok, a séma minősítése és a kényszerek elnevezése mind az ön konvencióit követi.

Tips

  • Kombinálja egyéni utasításokkal. A terv automatikusan örökli az egyezményeket, ha egyéni utasításfájllal rendelkezik.**/*.sql
  • A PRD termékközpontú maradjon. Kerülje az oszloptípusokat vagy korlátozásokat megadni itt: requirements.md. Hagyja, hogy a terv ezeket az Ön konvenciói alapján töltse ki.
  • Iteráljon a terven, ne a DDL-n. Olcsóbb átdolgozni egy Markdown-tervet, mint eldobni és újra létrehozni a táblákat.
  • Mentse a tervet a forrásvezérlőben. A terv értékes dokumentáció a jövőbeli közreműködők számára és a tervezési döntések újrafelfedezéséhez.
  • Hableány-diagramok használata a PRD-ben. A Mermaidben készült entitáskapcsolati diagramok segítenek abban, hogy a tervezési mód pontosan kinyerje a kapcsolatokat.

Ossza meg tapasztalatait

Az MSSQL-bővítményHez tartozó GitHub Copilot pontosításához és fejlesztéséhez használja a következő GitHub-problémasablont a visszajelzés elküldéséhez: GitHub Copilot Feedback

Visszajelzés küldésekor fontolja meg a következőket:

  • Tesztelt forgatókönyvek: Tudassa velünk, hogy mely területekre összpontosított, például sémalétrehozásra, lekérdezésgenerálásra, biztonságra, honosításra.

  • Ami jól működött: Ismertesse azokat a tapasztalatokat, amelyek zökkenőmentesnek, hasznosnak mutattak, vagy amelyek meghaladták az Ön elvárásait.

  • Problémák vagy hibák: Tartalmazzon bármilyen problémát, következetlenséget vagy zavaró viselkedést. A képernyőképek és a képernyőfelvételek különösen hasznosak.

  • Fejlesztési javaslatok: Ötletek megosztása a használhatóság javítására, a lefedettség bővítésére vagy a GitHub Copilot válaszainak javítására.