sql >> Databáze >  >> RDS >> Mysql

Použití UUID jako primárního klíče s Laravel 5

Co říkáte na tento nápad pro uložení 36chr UUID jako binární(16) :

IMO je výhoda v tom, že Laravel negeneruje UUID . Konkrétně, pokud se do databáze (někdy v budoucnu) vloží nové záznamy zvenčí aplikace, pole UUID je správně vyplněno.

Můj návrh:Vytvořte spouštěč výchozí hodnoty UUID pomocí migrací

(tento spouštěč přiměje databázový server vygenerovat UUID pokaždé, když je vložen nový zákazník)

<?php namespace MegaBank\HighInterestLoans\Updates;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;

class MigrationTriggerForCustomers extends Migration
{
public function up()
    {
    
        DB::unprepared('CREATE TRIGGER before_insert_customers
                      BEFORE INSERT ON    
                    `megabank_highinterestloans_customers` 
                      FOR EACH ROW
                      SET new.uuid = UNHEX(REPLACE(UUID(), "-","");');
    }

    public function down()
    {
        DB::unprepared('DROP TRIGGER `before_insert_customers`');
    }
}

A konečně, pokud chcete získat verzi svého UUID, která je čitelná pro člověka, proveďte následující:

SELECT HEX(UUID) FROM customers;

Každopádně doufám, že to někomu pomůže :-)



  1. MySQL:Vyberte všechna data mezi obdobím a získejte data odpovídající datům tabulky

  2. Jak mohu deklarovat a používat proměnné v PL/SQL jako v T-SQL?

  3. jak zjistit velikost řádku v tabulce

  4. Vložte model Backbone.js do databáze MySQL