Załóż nazwy tabel i wygenerujesz kod SQL do znalezienia tweetów Elona Muska z 2019 roku - Prompt do ChatGPT

Zaprojektuj skalowalny schemat bazy tweetów i pakiet SQL: DDL, indeksy, widoki, analityka, optymalizacja, partycjonowanie, bezpieczeństwo. Gotowe do wdrożenia w wielu DBMS.

Programowanie7Dodano 1.08.2025Działa w ChatGPT, Claude, Gemini

Co robi ten prompt

  • Projektuje schemat bazy danych dla użytkowników i tweetów, definiując tabele, kolumny i relacje między nimi.
  • Generuje zoptymalizowane zapytania SQL do wyszukiwania danych w różnych dialektach (PostgreSQL, MySQL, T-SQL) na podstawie podanych kryteriów.
  • Służy jako narzędzie edukacyjne i praktyczne do nauki projektowania baz danych i pisania wydajnych zapytań SQL dla typowych scenariuszy.

Wskazówki

  • Aby uzyskać najdokładniejszy kod, podaj jeden konkretny dialekt SQL, ponieważ funkcje (np. do obsługi dat) mogą się znacznie różnić. Jeśli podasz kilka, model postara się stworzyć uniwersalne rozwiązanie lub wskaże różnice.
  • Prompt jest ograniczony do filtrowania po użytkowniku i roku. Możesz go łatwo rozbudować, dodając nowe kryteria w zadaniu, np. 'znajdź tweety zawierające słowo kluczowe [słowo]' lub 'posortuj wyniki od najnowszego'.
Treść promptu · #48 · SQL, model danych, analiza tweetów, optymalizacja
Dane wejścioweuzupełnij w karcie obok
Nazwa użytkownika:[uzupełnij]
Rok:[uzupełnij]
Dialekt SQL:[uzupełnij]
Konteksttło zadania

Jesteś doświadczonym inżynierem danych specjalizującym się w projektowaniu schematów baz danych i optymalizacji zapytań SQL dla dużych zbiorów danych, takich jak archiwa mediów społecznościowych.

Zadanie (Cel)cel

Twoim zadaniem jest stworzenie kompletnego rozwiązania SQL do znalezienia wszystkich tweetów konkretnego użytkownika z określonego roku.

  1. Zaproponuj schemat bazy danych: Załóż i opisz dwie niezbędne tabele: users (do przechowywania informacji o użytkownikach) i tweets (do przechowywania treści tweetów). Zdefiniuj kluczowe kolumny, w tym klucze główne i obce, które łączą te tabele.
  2. Wygeneruj kod SQL: Napisz zoptymalizowane zapytanie SQL, które wykorzysta zaproponowany schemat do odfiltrowania tweetów na podstawie [Nazwa użytkownika] i [Rok]. Zapytanie musi być zgodne ze wskazanym [Dialekt SQL].
  3. Dodaj komentarze: W kodzie SQL umieść zwięzłe komentarze wyjaśniające kluczowe operacje (np. JOIN, warunki WHERE).
Format Odpowiedzijak ma wyglądać wynik

1. Proponowany Schemat Bazy Danych:

  • Tabela users: Krótki opis i lista kluczowych kolumn (np. user_id, username, full_name).
  • Tabela tweets: Krótki opis i lista kluczowych kolumn (np. tweet_id, user_id (klucz obcy), content, created_at).

2. Kod SQL:

  • Użyj bloku kodu Markdown (```sql) dla wygenerowanego zapytania.

3. Wyjaśnienie Logiki:

  • W 2-3 zdaniach opisz, jak zapytanie łączy tabele i filtruje dane, aby uzyskać pożądany wynik.
Najważniejszezasady

Skoncentruj się na zaproponowaniu realistycznego i wydajnego schematu z poprawnie zdefiniowaną relacją users -> tweets. Kluczowe jest, aby wygenerowany kod SQL był bezpośrednio powiązany z tym schematem, a funkcja do obsługi daty (np. EXTRACT(YEAR FROM ...) w PostgreSQL lub YEAR(...) w MySQL) była precyzyjnie dopasowana do podanego [Dialekt SQL]. Zaproponuj również potencjalne indeksy (np. na users.username i tweets.created_at) dla optymalizacji wydajności.

Jak używać tego prompta

Należy uzupełnić pola w nawiasach kwadratowych: [Nazwa użytkownika], [Rok] oraz [Dialekt SQL]. Przykładowo, aby znaleźć tweety Billa Gatesa z 2021 roku dla bazy danych MySQL, należy wpisać: [Nazwa użytkownika: Bill Gates], [Rok: 2021], [Dialekt SQL: MySQL]. Dla pola [Dialekt SQL] możesz podać jedną lub więcej wartości oddzielonych przecinkami, np. 'PostgreSQL, T-SQL'.

Dobrze wiedzieć

Kluczowym elementem wydajności w tego typu zapytaniach jest odpowiednie indeksowanie. Prompt sugeruje stworzenie indeksów na kolumnach users.username i tweets.created_at. W praktyce, indeks na kluczu obcym (tweets.user_id) jest równie ważny, ponieważ przyspiesza operacje łączenia tabel (JOIN). Bez indeksów, baza danych musiałaby skanować całe tabele w poszukiwaniu pasujących wierszy, co przy milionach rekordów byłoby niezwykle wolne.

Zaproponowany schemat jest prosty i zoptymalizowany pod kątem odczytu dla tego konkretnego zadania. W bardziej złożonych systemach social media, dane takie jak hashtagi, wzmianki o innych użytkownikach czy załączniki multimedialne często przechowuje się w osobnych tabelach (np. hashtags, tweet_hashtags). Taki zabieg, zwany normalizacją, pomaga unikać redundancji danych i ułatwia zarządzanie bazą, choć może wymagać bardziej skomplikowanych zapytań z większą liczbą złączeń.