data
Pokročilý
supabase
Architektura backendu v Supabase
Pokročilý návrh databázové struktury, zabezpečení a API integrací pro produkční aplikaci.
Vyplňte proměnné
2 políNáhled promptu
0 znakůJsi seniorní backend vývojář a architekt specializující se na ekosystém Supabase a PostgreSQL. Tvým úkolem je navrhnout komplexní a škálovatelné řešení pro nový projekt s názvem **[NÁZEV PROJEKTU]**, který je zaměřen na **[POPIS APLIKACE]**.
Postupuj podle následujících kroků a poskytni detailní technické řešení:
1. **Databázové schéma (SQL):**
Navrhni relační strukturu databáze. Napiš kompletní SQL skript pro vytvoření tabulek (`CREATE TABLE`), které zahrnuje:
* Definici primárních a cizích klíčů.
* Datové typy optimalizované pro výkon.
* Rozšíření Supabase (např. `auth.users`) a propojení s vlastními tabulkami.
* Využití JSONB sloupců pro flexibilní data (pokud je třeba).
2. **Bezpečnost a RLS (Row Level Security):**
Definuj bezpečnostní politiky (Policies) pro přístup k datům. Musíš zajistit, aby:
* Veřejný přístup byl povolen pouze pro čtení specifických dat (např. seznam produktů).
* Autentizovaní uživatelé mohli vytvářet a upravovat pouze svá vlastní data (pomocí `auth.uid()`).
* Admin role měla plná práva.
3. **API a Realtime:**
Navrhni strategii pro využití automaticky generovaného REST API a GraphQL (pokud je relevantní). Dále specifikuj, které tabulky by měly mít zapnuté **Realtime** posílání (např. pro chat nebo live updates) a jak zajistit, aby se klienti automaticky přihlašovali k odběru změn.
4. **Edge Functions a Storage:**
Navrhni případ použití pro Supabase Edge Functions (Deno) pro logiku, která nesmí běžet na klientovi (např. zpracování plateb nebo těžké výpočty). Dále navrhni strukturu **Storage** buckets pro ukládání souborů (např. avatary uživatelů, dokumenty) včetně bezpečnostních pravidel nahrávání.
5. **Vektorové vyhledávání (Volitelné):**
Pokud je pro projekt relevantní full-textové vyhledávání nebo AI, navrhni implementaci pomocí `pgvector` (vector embeddings). Urči, která data se mají vektorizovat a jak nastavit HNSW index pro rychlé vyhledávání.
Závěr poskytni jako strukturovaný technický dokument s kódovými bloky, které lze přímo zkopírovat do Supabase SQL Editoru.
Postupuj podle následujících kroků a poskytni detailní technické řešení:
1. **Databázové schéma (SQL):**
Navrhni relační strukturu databáze. Napiš kompletní SQL skript pro vytvoření tabulek (`CREATE TABLE`), které zahrnuje:
* Definici primárních a cizích klíčů.
* Datové typy optimalizované pro výkon.
* Rozšíření Supabase (např. `auth.users`) a propojení s vlastními tabulkami.
* Využití JSONB sloupců pro flexibilní data (pokud je třeba).
2. **Bezpečnost a RLS (Row Level Security):**
Definuj bezpečnostní politiky (Policies) pro přístup k datům. Musíš zajistit, aby:
* Veřejný přístup byl povolen pouze pro čtení specifických dat (např. seznam produktů).
* Autentizovaní uživatelé mohli vytvářet a upravovat pouze svá vlastní data (pomocí `auth.uid()`).
* Admin role měla plná práva.
3. **API a Realtime:**
Navrhni strategii pro využití automaticky generovaného REST API a GraphQL (pokud je relevantní). Dále specifikuj, které tabulky by měly mít zapnuté **Realtime** posílání (např. pro chat nebo live updates) a jak zajistit, aby se klienti automaticky přihlašovali k odběru změn.
4. **Edge Functions a Storage:**
Navrhni případ použití pro Supabase Edge Functions (Deno) pro logiku, která nesmí běžet na klientovi (např. zpracování plateb nebo těžké výpočty). Dále navrhni strukturu **Storage** buckets pro ukládání souborů (např. avatary uživatelů, dokumenty) včetně bezpečnostních pravidel nahrávání.
5. **Vektorové vyhledávání (Volitelné):**
Pokud je pro projekt relevantní full-textové vyhledávání nebo AI, navrhni implementaci pomocí `pgvector` (vector embeddings). Urči, která data se mají vektorizovat a jak nastavit HNSW index pro rychlé vyhledávání.
Závěr poskytni jako strukturovaný technický dokument s kódovými bloky, které lze přímo zkopírovat do Supabase SQL Editoru.
Legenda
Text v [hranatých závorkách] označuje proměnné, které je třeba vyplnit. Po vyplnění se automaticky nahradí vašimi hodnotami.
Tipy pro lepší výsledky
- Buďte konkrétní - čím detailnější zadání, tím lepší výsledky
- Používejte kontext - přidejte relevantní informace pro vaši situaci
- Experimentujte - zkuste různé varianty a porovnejte výsledky