Laravel migration per una programmazione avanzata con framework laravel php

Laravel migration per una programmazione avanzata con framework laravel php

Le Laravel migration sono un elemento fondamentale del lavoro con Laravel, consentendo una gestione efficiente dello schema del database.


Oggi vedremo cinque esempi avanzati, che aiutano ad elevare il livello della programmazione e che possono semplificare notevolmente il tuo lavoro.


3 minuti


Prima di leggere questi consigli alla programmazione avanzata con il framework laravel, vi consigliamo di leggere cosa sono le migration di laravel, e le best practice.


Aggiunta di indici full-text

La ricerca avanzata in grandi set di dati richiede indici efficienti. Laravel consente l'aggiunta di indici full-text, il che è particolarmente utile per la funzionalità di ricerca:


Schema::table('posts', function (Blueprint $table) {
DB::statement('ALTER TABLE posts ADD FULLTEXT fulltext_index(title, content)');
});

Aggiungendo un indice full-text fulltext_indexalle colonne titlee content, si velocizzeranno notevolmente le ricerche di frasi in queste colonne.


Impostazione dei valori predefiniti tramite SQL non elaborato

L'utilizzo di query SQL non elaborate nelle migrazioni consente l'uso di funzionalità di database più avanzate, come l'impostazione di valori predefiniti tramite funzioni SQL:


Schema::table('users', function (Blueprint $table) {
DB::statement("ALTER TABLE users ADD COLUMN sign_up_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP");
});

In questo caso, utilizzando CURRENT_TIMESTAMP, la sign_up_datecolonna appena aggiunta riceve automaticamente la data e l'ora correnti come valore predefinito.


Aggiunta di una colonna con un UUID univoco

Gli UUID sono un ottimo modo per garantire l'unicità dei record su scala globale. Laravel semplifica l'aggiunta di una colonna del genere:


Schema::table('invoices', function (Blueprint $table) {
$table->uuid('invoice_id')->unique();
});

Aggiungendo la invoice_idcolonna con un tipo UUID e impostandola come univoca si garantisce una forte unicità degli identificatori nel database.


Utilizzo di colonne ID esterne

Dalla versione 7.x, Laravel ha introdotto un modo semplificato di creare chiavi esterne e indici usando il foreignIdFormetodo. Questa è una facilitazione significativa, ma non tutti la utilizzano. Il trucco sta nell'usare questo metodo per creare rapidamente relazioni:


Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->foreignIdFor(User::class)->constrained()->onDelete('cascade');
$table->string('title');
$table->text('content');
$table->timestamps();
});

Nell'esempio sopra, creiamo una poststabella con una chiave esterna alla userstabella, usando foreignIdForper la Userclasse. Questo è un modo più veloce ed elegante per definire le relazioni.


Creazione di tabelle dinamiche nella migrazione

In alcune situazioni, potrebbe essere necessaria flessibilità nella creazione di tabelle in base a condizioni specifiche:


if (!Schema::hasTable('dynamic_table')) {
Schema::create('dynamic_table', function (Blueprint $table) {
$table->id();
// Column definitions...
});
}

Controllando se la tabella esiste già, è possibile evitare duplicazioni ed errori durante la creazione dello schema.



Utilizzando questi trucchi avanzati nelle migrazioni Laravel, puoi migliorare e accelerare significativamente lo sviluppo della tua applicazione. Da indici full-text e creazione di tabelle dinamiche a partizionamento dei dati, le possibilità sono pressoché illimitate. Ci auguriamo che questi suggerimenti ti siano preziosi e ti aiutino a migliorare la qualità del tuo lavoro con Laravel.


Ercole Palmeri
#PHPTutorial #SoftwareDeveloper #SoftwareEngineering #tutorialdilaravelPHP
https://bloginnovazione.it/laravel-migration-add-column/51496/

Commenti

Post popolari in questo blog

Come impostare i giorni lavorativi in ​​Microsoft Project: calendario di progetto