---
title: "Databázová schéma — Connections for Laravel | Roundly"
description: "Jedna polymorfná tabuľka connections — morph kľúče, oprávnenia a meta v jsonb, stav, expirácia, soft deletes a unikátny index dvojice."
url: https://roundly-consulting.com/sk/open-source/navody/connections-for-laravel/databazova-schema
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Connections for Laravel](https://roundly-consulting.com/sk/open-source/navody/connections-for-laravel.md)

# Databázová schéma

Každé prepojenie je jeden riadok v jedinej polymorfnej tabuľke — predvolene connections, premenovať ju môžete kľúčom table. Publikovaná migrácia v skrátenej podobe:

```php
Schema::create('connections', function (Blueprint $table) use ($keyType): void {
    $table->id();
    $table->morphKey('connector', $keyType, nullable: false);
    $table->morphKey('connectable', $keyType, nullable: false);
    $table->jsonb('permissions');
    $table->string('status')->default('accepted')->index();
    $table->jsonb('meta')->nullable();
    $table->timestamp('expires_at')->nullable();
    $table->timestamps();
    $table->softDeletes();

    $table->unique(
        ['connector_type', 'connector_id', 'connectable_type', 'connectable_id'],
        'connections_morph_unique',
    );
});
```

| Stĺpec | Typ | Poznámka |
| --- | --- | --- |
| `id` | bigint | Primárny kľúč. |
| `connector_type / connector_id` | morph kľúč | Strana, ktorá prepojenie vytvorila. id sa riadi podľa key\_type. |
| `connectable_type / connectable_id` | morph kľúč | Strana, na ktorú prepojenie smeruje. id sa riadi podľa key\_type. |
| `permissions` | jsonb | Reťazce oprávnení; cast na Collection. |
| `status` | string, indexovaný | pending, accepted alebo blocked; predvolene accepted. Cast na ConnectionStatus. |
| `meta` | jsonb, nullable | Voľné metadáta; cast na pole. |
| `expires_at` | timestamp, nullable | Null znamená, že prepojenie nikdy nevyprší. |
| `created_at / updated_at` | timestamps | Štandardné časové značky Eloquentu. |
| `deleted_at` | soft deletes | Nastavuje ho disconnect(), odpojenie pri sync a connections:prune; po oživení či obnove dvojice sa znova vymaže. |

## Kľúče UUID a ULID

Oba morph stĺpce id sa riadia podľa key\_type — bigint (predvolené), uuid alebo ulid. Nastavte ho pred publikovaním a spustením migrácie: po vytvorení tabuľky je nemenný a predvolený bigint vytvorí presne tie isté stĺpce ako morphs() v Laraveli.

```bash
# .env — set before publishing and running the migration
CONNECTIONS_KEY_TYPE=ulid

php artisan vendor:publish --tag="connections-migrations"
php artisan migrate
```

## Jeden riadok na dvojicu

Index connections\_morph\_unique pokrýva connector\_type, connector\_id, connectable\_type a connectable\_id — vrátane soft-deleted riadkov. Opätovné prepojenie tej istej dvojice aktualizuje existujúci riadok namiesto pridania druhého a odpojená či uprataná dvojica sa oživí na mieste — connect() ju začne nanovo, reconnect() ju obnoví v pôvodnej podobe (pozrite Prepínanie a obnova). Dve požiadavky, ktoré tú istú dvojicu prepoja naraz, nikdy nepridajú druhý riadok: insert, ktorý preteky prehrá, sa uplatní na víťazný riadok.

permissions a meta sú stĺpce jsonb. Na PostgreSQL sa tak dajú porovnávať a indexovať; na MySQL a SQLite ich schema builder skompiluje na rovnaký typ ako json.

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/connections-for-laravel.md)
