Ich habe das folgende Schema die Adressen-Tabelle für die Erstellung von:Laravel 5.2 Datenbankschema erstellt eine eindeutige Spalte, indem sie es selbst
Schema::create('addresses', function (Blueprint $table) {
$table->string('id')->index();
$table->string('street', 100);
$table->integer('number', 5);
$table->string('addition', 10);
$table->string('postal_code', 7);
$table->string('place', 45);
$table->string('country', 45);
$table->timestamps();
$table->softDeletes();
});
Aus Sicherheitsgründen ‚id‘ ist eine zufällig generierte und eindeutige Zeichenfolge anstelle einer Autoinkrement-Ganzzahl
Nur ein Problem: Laravel macht die Spalte 'Nummer' einzigartig, weil es die einzige Spalte mit Datentyp Integer ist. Wir wollen die Spalte 'id' als primären und eindeutigen Schlüssel.
Wir haben auch versucht dies:
$table->primary('id')->index();
$table->uuid('id')->index();
$table->string('id')->primary()->index();
ich diesen Fehler noch bin immer:
Integrity constraint violation: 19 UNIQUE constraint failed:
addresses.number
ich über etwas anderes hier kommentieren werde - Sie verwenden eine zufällige gen Erratete eindeutige Zeichenfolge anstelle von auto_increment aus Sicherheitsgründen - welche Gründe sind das? Wenn Sie die numerische ID nicht preisgeben möchten, warum liefern Sie keine verschlüsselte Nachricht oder verschlüsseln sie, base64_encode und liefern Sie diese? Sie werden eine sehr, sehr schlechte Zeit haben und Sie werden erfahren, warum Ihre Daten wachsen. – Mjh