NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Reviews for Laravel

Databázová schéma a typy kľúčov

Balík používa dve tabuľky. V reviews sú recenzie aj odpovede vlastníka:

StĺpecTypPoznámka
idbigintAutoinkrementálny primárny kľúč.
parent_idbigint, nullableCudzí kľúč na reviews (pri zmazaní null) — nastavený pri odpovediach vlastníka.
reviewable_type / reviewable_idmorph, nullablePredmet recenzie; typ id určuje key_type.
author_type / author_idmorph, nullableAutor; typ id určuje key_type.
ratingunsigned tinyint, nullable, indexnull = recenzia len s textom alebo odpoveď.
statusstring, indexpending, approved alebo rejected; predvolene pending.
verifiedboolean, indexOverený nákup / recenzent; predvolene false.
titlestring, nullableVoliteľný nadpis.
contenttext, nullableVoliteľný text — recenzia len s hviezdičkami ho nemá.
metajsonb, nullableĽubovoľné metadáta ako Collection; obsahuje rejection_reason.
helpful_count / unhelpful_countunsigned intDenormalizované počty hlasov; predvolene 0.
approved_attimestamp, nullableNastaví sa pri schválení, vymaže pri zamietnutí.
created_at / updated_at / deleted_attimestampsRecenzie sa mažú mäkko (soft delete).

Zložený index (reviewable_type, reviewable_id, status) obsluhuje agregačné dopyty pre jeden predmet. Stĺpec rating je unsigned tiny integer, preto max_rating nenastavujte nad 255.

review_votes

  • review_id — cudzí kľúč na tabuľku nakonfigurovaného modelu recenzie, pri zmazaní sa kaskáduje.
  • voter_type / voter_id — polymorfný hlasujúci, typ určuje key_type.
  • helpful — true pre užitočný, false pre neužitočný hlas.
  • Unikátny index (review_id, voter_type, voter_id): jeden hlas od hlasujúceho na recenziu.

Typy kľúčov

Autori, predmety a hlasujúci sú polymorfní, zapojiť sa teda môže akýkoľvek Eloquent model. key_type určuje typ ich stĺpcov id; vlastné tabuľky balíka majú vždy autoinkrementálne kľúče:

key_typePoužite, keď vaši autori, predmety a hlasujúci…
bigintpoužívajú predvolené autoinkrementálne kľúče Laravelu (predvolené)
uuidpoužívajú HasUuids
ulidpoužívajú HasUlids

Všetky vaše polymorfné ciele musia mať rovnaký typ kľúča. Nastavte ho pred spustením migrácií — číta sa práve vtedy:

# Set before you run the migrations — the morph columns are typed from it
REVIEWS_KEY_TYPE=uuid

Iná hodnota vyhodí InvalidConfigurationException, namiesto aby sa potichu migrovalo ako bigint.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.