Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggunakan UUID sebagai kunci utama dengan Laravel 5

Bagaimana dengan ide untuk menyimpan UUID 36chr sebagai Binary(16) :

IMO ada keuntungan jika Laravel tidak membuat UUID . Yaitu, jika catatan baru (suatu hari nanti) dimasukkan ke dalam database dari luar aplikasi, bidang UUID diisi dengan benar.

Saran saya:Buat pemicu nilai default UUID menggunakan migrasi

(pemicu ini membuat server DataBase melakukan pekerjaan untuk menghasilkan UUID setiap kali pelanggan baru dimasukkan)

<?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`');
    }
}

Terakhir, jika Anda ingin mendapatkan versi UUID yang dapat dibaca manusia, lakukan saja hal berikut:

SELECT HEX(UUID) FROM customers;

Bagaimanapun, semoga ini bisa membantu seseorang :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara termudah untuk mengubah Blob menjadi array byte

  2. Masalah dengan karakter UTF-8; apa yang saya lihat bukan apa yang saya simpan

  3. Bagaimana cara melewatkan tabel sebagai parameter ke MySqlCommand?

  4. Bisakah MySQL mengonversi waktu UTC yang disimpan ke zona waktu lokal?

  5. Cara memperbarui versi mysql di xampp (kesalahan dengan innodb_additional_mem_pool_size)