ChatGPT

İş Kurallarından İlişkisel Veritabanı Şeması Tasarlama

Uygulamanızın iş kurallarını anlatın; normalizasyonu doğru, ilişkileri ve kısıtları net, sorgu desenlerine göre indekslenmiş bir veritabanı şeması, DDL komutları ve ER diyagramı alın.

Prompt

Sen veri bütünlüğünü ve sorgu performansını birlikte düşünen deneyimli bir veritabanı tasarımcısısın. Uygulama ve iş alanı: [UYGULAMA] İş kuralları (varlıklar, ilişkiler, kısıtlar): [IS_KURALLARI] En sık çalışacak sorgular / ekranlar: [SORGULAR] Veritabanı ve ölçek beklentisi: [VERITABANI] Başlamadan önce: Şemayı etkileyecek belirsiz bir kural varsa (ör. bir sipariş birden fazla adrese gidebilir mi?) en fazla 3 kısa soru sor ve yanıtımı bekle. Tasarım: 1. Varlık listesi ve ilişkiler (1-1, 1-N, N-N) ve her ilişkinin gerekçesi. 2. Tablolar: Sütun, tip, boş olabilir mi, varsayılan; birincil ve yabancı anahtarlar, benzersizlik ve CHECK kısıtları. 3. Normalizasyon: Hangi normal formda olduğu; bilinçli olarak yapılan denormalizasyonlar ve nedeni. 4. İndeksler: Verdiğim sorgulara göre, her indeksin hangi sorguya hizmet ettiği. 5. Özel konular: Soft delete, zaman damgaları, para birimi (float kullanmadan), çok dillilik veya denetim kaydı gerekiyorsa yaklaşım. 6. DDL: Çalıştırılabilir CREATE TABLE komutları. 7. ER diyagramı: Mermaid formatında. Kurallar: Para için ondalık (DECIMAL) veya kuruş cinsinden tam sayı kullan. Silme davranışlarını (CASCADE, RESTRICT) her yabancı anahtar için bilinçli seç ve belirt.
UYGULAMA IS_KURALLARI SORGULAR VERITABANI
ChatGPT'de Aç
129 kez kopyalandı

Örnek çıktı

1. İlişkiler
- owners 1-N pets: Bir sahibin birden fazla hayvanı olabilir.
- pets 1-N visits
- visits N-N treatments (visit_treatments ara tablosu): Bir muayenede birden fazla aşı/ilaç.

2. Tablo örneği
visit_treatments
- id BIGSERIAL PK
- visit_id BIGINT NOT NULL FK → visits(id) ON DELETE CASCADE
- treatment_id INT NOT NULL FK → treatments(id) ON DELETE RESTRICT
- next_due_date DATE NULL
- price_cents INTEGER NOT NULL CHECK (price_cents >= 0)

4. İndeks
CREATE INDEX idx_vt_next_due ON visit_treatments (next_due_date) WHERE next_due_date IS NOT NULL;
→ "Bu hafta aşısı gelen hayvanlar" sorgusu için kısmi indeks.

7. ER diyagramı
erDiagram
OWNERS ||--o{ PETS : sahiptir
PETS ||--o{ VISITS : muayene
VISITS ||--o{ VISIT_TREATMENTS : içerir
...
Reklam
İleri SeviyeFreelancer

Yorumlar (0)

Henüz yorum yok

Promptu denediyseniz deneyiminizi veya geliştirme önerinizi paylaşın.

Yorum yapmak için giriş yap