Avvio rapido: Usare la modalità pianificazione per la progettazione di database basata sulle specifiche

La modalità di pianificazione è una funzionalità di Visual Studio Code che consente a GitHub Copilot di analizzare una richiesta senza apportare alcuna modifica. Quando si progetta un database, la modalità di pianificazione traduce un documento dei requisiti di prodotto (PRD) in linguaggio naturale in un modello di dati ben strutturato (tabelle, relazioni, tabelle di giunzione, direzione delle chiavi esterne e vincoli) prima di scrivere una singola istruzione CREATE TABLE. Si consegna quindi il piano a agent mode o a Schema Designer per creare lo schema vero e proprio.

Tip

Usa la modalità di pianificazione quando devi riflettere prima di scrivere istruzioni SQL DDL (Data Definition Language), soprattutto per schemi creati da zero o refactoring estesi. Per le modifiche a tabella singola, usare invece la modalità ask .

Messaggi chiave:

  • La modalità piano produce un piano scritto (spesso salvato come plan.md) che è possibile esaminare prima dell'esecuzione.
  • La modalità piano è consapevole dello schema quando viene utilizzata insieme al partecipante della chat @mssql o quando alleghi file con #file:.
  • Abbina la modalità di pianificazione a istruzioni personalizzate in modo che il piano erediti automaticamente le tue convenzioni Transact-SQL (T-SQL).
  • La modalità di pianificazione è una funzionalità di Visual Studio Code, non è specifica di MSSQL, ma si adatta bene alla progettazione di database.

Prerequisiti

  • Visual Studio Code con l'estensione MSSQL installata.
  • Una sottoscrizione GitHub Copilot attiva con la modalità Piano disponibile nell'elenco a discesa della modalità chat.
  • Cartella dell'area di lavoro in cui è possibile creare un file requirements.md.
  • Facoltativo: una connessione al database di destinazione per il passaggio in modalità agente.
  • Facoltativo: un file di istruzioni personalizzato per le convenzioni T-SQL.

Che cos'è la modalità piano?

La modalità di pianificazione è una delle modalità della chat in Visual Studio Code, insieme ad ask mode, edit mode e agent mode. In modalità di pianificazione, GitHub Copilot:

  • Legge la richiesta e qualsiasi contesto collegato.
  • Produce un piano scritto che suddivide il lavoro in passaggi ragionati.
  • Non modifica i file o esegue gli strumenti. Il piano è un artefatto di pensiero, non un'esecuzione.

È quindi possibile passare alla modalità agente (o Progettazione schemi) per eseguire il piano. Per la documentazione generale, vedere Modalità chat in Visual Studio Code.

Perché la modalità piano si adatta alla progettazione del database

Le decisioni relative al modello di dati si sommano. Le tabelle di giunzione, la direzione della chiave esterna, le colonne di audit e le scelte di normalizzazione sono più facili da rivedere in un piano in Markdown che in un DDL già pubblicato. La modalità piano consente di:

  • Convalidare il progetto prima di procedere alla realizzazione. Esaminare lo schema proposto, contestare le scelte discutibili e perfezionare il piano per iterazioni.
  • Esporre relazioni nascoste. La modalità di pianificazione mostra tabelle di giunzione e relazioni molti-a-molti che non hai richiesto esplicitamente.
  • Separare la specifica dall'esecuzione. Il PRD rimane rivolto al prodotto; il piano diventa l'artefatto tecnico; il DDL diventa il risultato finale.

Scenario end-to-end: schema di TaskManager

Questa guida introduttiva illustra un flusso completo: PRD nel linguaggio naturale → piano in Markdown → tabelle compilate in Progettazione schemi.

Passaggio 1: Creare un documento sui requisiti di un prodotto

Creare requirements.md nella radice dell'area di lavoro. Descrivere l'applicazione in linguaggio naturale, incluse le entità di dominio, le relazioni e le regole business. Mantenere il documento incentrato sul prodotto. Non specificare i tipi di colonna o i vincoli (questo è il file di istruzioni personalizzato ).

# 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.

Passaggio 2: Passare Copilot Chat GitHub alla modalità di pianificazione

  1. Aprire la visualizzazione Copilot Chat GitHub.
  2. Nell'elenco a discesa modalità chat selezionare Piano.

Passaggio 3: Invia il PRD alla modalità Pianificazione

Allega requirements.md come contesto, trascinando il file nel campo di input della chat, usando #file:requirements.md o selezionando il pulsante Allega.

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.

GitHub Copilot produce un piano ragionato e lo salva come plan.md nell'area di lavoro. Il piano in genere comprende:

  • Elenco di tabelle con il relativo scopo
  • Relazioni (uno-a-molti, molti-a-molti) e le tabelle di giunzione che le consentono
  • Vincoli (UNIQUE, CHECK, chiave esterna) che impongono le regole di business del PRD
  • Domande aperte o presupposti su cui si basa il piano

Esaminare il piano prima di procedere. Se manca una relazione o un vincolo non è corretto, eseguire l'iterazione inviando richieste di completamento in modalità piano. La modalità Pianificazione non mantiene lo stato ed è economica, quindi sono normali più iterazioni di affinamento.

Passaggio 4: Passare il piano alla modalità agente o a Schema Designer

Dopo aver letto correttamente il piano, passare alla modalità agente e compilare lo schema.

  1. Nell'elenco a discesa modalità chat selezionare Agent.
  2. Inviare una richiesta che faccia riferimento al file di piano e alla superficie di destinazione:
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.

La modalità agente apre Progettazione schemi e crea ogni tabella, richiedendo l'approvazione in ogni passaggio. Le istruzioni personalizzate si applicano automaticamente: la denominazione delle colonne, le colonne di controllo, la qualificazione dello schema e la denominazione dei vincoli seguono tutte le convenzioni.

Tips

  • Abbina a istruzioni personalizzate. Il piano eredita automaticamente le convenzioni quando si dispone di un file di istruzioni personalizzato per **/*.sql.
  • Mantieni il PRD incentrato sul prodotto. Evitare di specificare tipi di colonna o vincoli in requirements.md. Lascia che il piano li compili in base alle tue convenzioni.
  • Itera sul piano, non sul DDL. È più economico rivedere un piano Markdown piuttosto che eliminare e ricreare le tabelle.
  • Salvare il piano nel controllo del codice sorgente. Il piano è una documentazione utile per i collaboratori futuri e per rivedere le decisioni di progettazione.
  • Usare diagrammi Mermaid nel PRD. I diagrammi entità-relazione in Mermaid aiutano la modalità pianificazione a estrarre accuratamente le relazioni.

Condividere la propria esperienza

Per ottimizzare e migliorare GitHub Copilot per l'estensione MSSQL, usare il modello di problema GitHub seguente per inviare commenti e suggerimenti: Commenti e suggerimenti su GitHub Copilot

Quando si inviano commenti e suggerimenti, è consigliabile includere:

  • Scenari testati: segnalare le aree su cui ci si è concentrati, ad esempio la creazione dello schema, la generazione di query, la sicurezza, la localizzazione.

  • Cosa ha funzionato bene: descrivere tutte le esperienze che si sono sentite fluide, utili o superate le aspettative.

  • Problemi o bug: includere eventuali problemi, incoerenze o comportamenti confusi. Screenshot o registrazioni dello schermo sono particolarmente utili.

  • Suggerimenti per il miglioramento: condividere idee per migliorare l'usabilità, espandere la copertura o migliorare le risposte di GitHub Copilot.