Bagikan melalui


Mulai cepat: Menggunakan penjelas logika bisnis

Di panduan cepat ini, Anda mempelajari bagaimana penjelas logika bisnis membantu pengembang memahami dan bekerja dengan logika aplikasi kompleks yang diterapkan dalam SQL, kerangka kerja ORM (Object-Relational Mapping), atau langsung dalam database. Asisten menganalisis kode SQL, model ORM, atau skema database yang ada untuk menjelaskan aturan bisnis yang mendasar dan memberikan dokumentasi yang dapat ditindaklanjuti.

Mulai sekarang!

Pastikan Anda tersambung ke database dan membuka jendela editor aktif dengan ekstensi MSSQL. Koneksi ini memungkinkan @mssql peserta obrolan untuk memahami konteks lingkungan database Anda, memungkinkan saran yang akurat dan sadar konteks. Tanpa koneksi database, peserta obrolan tidak akan memiliki skema atau konteks data untuk memberikan respons yang bermakna.

Contoh berikut menggunakan AdventureWorksLT2022 database sampel, yang dapat Anda unduh dari beranda Sampel Microsoft SQL Server dan Proyek Komunitas .

Untuk hasil terbaik, sesuaikan nama tabel dan skema agar sesuai dengan lingkungan Anda sendiri.

Pastikan obrolan menyertakan awalan @mssql . Misalnya, ketik @mssql diikuti dengan pertanyaan atau perintah Anda. Ini memastikan bahwa peserta obrolan memahami Bahwa Anda meminta bantuan terkait SQL.

Memahami logika bisnis dengan GitHub Copilot

GitHub Copilot dapat membantu Anda memahami dan menjelaskan aturan bisnis yang disematkan dalam kode database, model ORM, dan kueri aplikasi. Dari prosedur tersimpan hingga kueri LINQ dan ekspresi Sequelize, GitHub Copilot menyediakan wawasan bahasa alami untuk membuat logika yang kompleks jadi lebih mudah diakses.

Berikut adalah kasus penggunaan umum dan contoh apa yang dapat Anda tanyakan melalui peserta obrolan:

Menjelaskan logika T-SQL

Gunakan GitHub Copilot untuk memahami dan menjelaskan logika Transact-SQL (T-SQL), dari prosedur tersimpan hingga pernyataan kondisional sebaris. Baik Anda meninjau aturan diskon, logika prosedural, atau kondisi pengoptimalan, GitHub Copilot dapat menganalisis dan mendokumentasikan aturan bisnis yang diterapkan dalam T-SQL.

Menjelaskan prosedur tersimpan

Explain what the `SalesLT.uspGetCustomerOrderHistory` stored procedure does and suggest ways to optimize it.

Melakukan debug pada prosedur tersimpan

Debug the `SalesLT.uspGetTopSellingProducts` stored procedure and suggest improvements.

Menjelaskan logika bisnis dalam cuplikan kode

Analyze the following SQL code snippet from my current database. Document the business rules implemented in this discount application process, including conditions for eligibility, discount rate adjustments, and any limits imposed on the discount amount. Also, provide actionable insights or suggestions to improve clarity or performance if necessary.

DECLARE @OrderTotal AS DECIMAL (10, 2) = 1500.00;
DECLARE @DiscountCode AS NVARCHAR (20) = 'DISCOUNT10';
DECLARE @DiscountPct AS DECIMAL (5, 2) = CASE WHEN @OrderTotal > 1000.00 THEN 5.0 ELSE 0.0 END;

IF @DiscountCode = 'DISCOUNT10'
    BEGIN
        SET @DiscountPct = CASE WHEN @DiscountPct < 10.0 THEN 10.0 ELSE @DiscountPct END;
    END

DECLARE @DiscountAmount AS DECIMAL (10, 2) = (@OrderTotal * @DiscountPct / 100.0);

IF @DiscountAmount > 200.00
    BEGIN
        SET @DiscountAmount = 200.00;
    END

SELECT @OrderTotal AS OrderTotal,
       @DiscountPct AS DiscountPercentage,
       @DiscountAmount AS DiscountAmount;

Menjelaskan logika ORM

Menjelaskan kueri SQLAlchemy

Explain what the following SQLAlchemy query does:

from sqlalchemy import func

top_customers = (
    session.query(SalesOrderHeader.CustomerID, func.count().label("OrderCount"))
    .group_by(SalesOrderHeader.CustomerID)
    .order_by(func.count().desc())
    .limit(10)
)

Menjelaskan kueri LINQ Kerangka Kerja Entitas

What does this Entity Framework LINQ query do? Describe how it groups customers by tier based on their total purchases.

var customerTiers = context.SalesOrderHeaders
    .GroupBy(o => o.CustomerID)
    .Select(g => new {
        CustomerID = g.Key,
        TotalSpent = g.Sum(o => o.TotalDue),
        Tier = g.Sum(o => o.TotalDue) >= 10000 ? "Gold" :
               g.Sum(o => o.TotalDue) >= 5000 ? "Silver" : "Bronze"
    });

Menjelaskan logika bisnis dalam kueri Prisma

Analyze the logic of this Prisma query and explain how it determines which products are considered "low inventory".

const lowInventoryProducts = await prisma.product.findMany({
  where: {
    SafetyStockLevel: {
      lt: 50
    }
  },
  select: {
    ProductID: true,
    Name: true,
    SafetyStockLevel: true
  }
});

Menjelaskan dan memberi komentar tentang kueri Sequelize

Review and explain what this Sequelize query does. Add inline comments to clarify how it calculates total revenue per customer and filters for customers with significant spending:

const results = await SalesOrderHeader.findAll({
  attributes: ['CustomerID', [sequelize.fn('SUM', sequelize.col('TotalDue')), 'TotalSpent']],
  group: ['CustomerID'],
  having: sequelize.literal('SUM(TotalDue) > 5000')
});

Membuat kueri SQLAlchemy untuk daftar produk

Using SQLAlchemy, generate a query to list products that have never been ordered and ask GitHub Copilot to explain the join logic and filtering behavior.

Mengambil informasi pelanggan menggunakan kueri Prisma

In Prisma, write a query that retrieves customers who placed an order in the last 30 days. Explain what the following Prisma query does. Add inline comments to clarify how the date filtering works and how recent orders are determined:

Memahami niat bisnis melalui kueri

GitHub Copilot membantu pengembang memahami bukan hanya cara kerja kueri, tetapi mengapa kueri tersebut ada. Penjelasan ini mencakup tujuan dunia nyata di balik filter data, pengelompokan, dan agregasi. Penjelasan ini sangat berguna selama onboarding, memungkinkan pengembang untuk memahami tujuan di balik laporan, gerbang logika, atau metrik sistem yang disematkan dalam kode SQL dan ORM.

Menjelaskan tujuan bisnis dalam kueri T-SQL

Describe the business goal of the following SQL query. What insight is it trying to surface?

SELECT TOP 10 CustomerID,
              COUNT(*) AS OrderCount
FROM SalesLT.SalesOrderHeader
GROUP BY CustomerID
ORDER BY OrderCount DESC;

Meringkas tujuan dari kueri T-SQL

Summarize what this query is intended to achieve from a business perspective.

SELECT ProductID,
       SUM(LineTotal) AS TotalSales
FROM SalesLT.SalesOrderDetail
GROUP BY ProductID
HAVING SUM(LineTotal) > 10000;

Jelaskan logika bisnis dalam prosedur tersimpan

Analyze the `SalesLT.uspGetCustomerOrderHistory` stored procedure and describe the business logic it implements.

Menjelaskan logika bisnis dalam kueri LINQ Kerangka Kerja Entitas

Explain this Entity Framework LINQ query and describe what business logic it implements:

var highValueCustomers = context.SalesOrderHeaders
    .Where(o => o.TotalDue > 1000)
    .GroupBy(o => o.CustomerID)
    .Select(g => new { CustomerID = g.Key, OrderCount = g.Count() })
    .OrderByDescending(x => x.OrderCount)
    .Take(10)
    .ToList();

Jelaskan asumsi bisnis dalam kueri Sequelize

Using Sequelize, explain what this query does and describe any business assumptions it makes:

const customerRevenue = await SalesOrderHeader.findAll({
  attributes: ['CustomerID', [sequelize.fn('SUM', sequelize.col('TotalDue')), 'TotalSpent']],
  group: ['CustomerID'],
  having: sequelize.literal('SUM(TotalDue) > 5000')
});

Membagikan pengalaman Anda

Untuk membantu kami memperbaiki dan meningkatkan GitHub Copilot untuk ekstensi MSSQL, gunakan templat masalah GitHub berikut untuk mengirimkan umpan balik Anda: GitHub Copilot Feedback

Saat mengirimkan umpan balik, pertimbangkan untuk menyertakan:

  • Skenario yang diuji - Beri tahu kami area mana yang Anda fokuskan, misalnya, pembuatan skema, pembuatan kueri, keamanan, pelokalan.

  • Apa yang bekerja dengan baik - Menjelaskan pengalaman apa pun yang terasa lancar, membantu, atau melebihi harapan Anda.

  • Masalah atau bug - Sertakan masalah, inkonsistensi, atau perilaku yang membingungkan. Cuplikan layar atau rekaman layar sangat membantu.

  • Saran untuk perbaikan – Bagikan ide untuk meningkatkan kegunaan, memperluas cakupan, atau meningkatkan respons GitHub Copilot.