2016-06-06 3 views
0

Ich muss Zahlen generieren, die eindeutig und in Folge sind (für die einfache Rückverfolgbarkeit). Außerdem sollten sie so lückenlos wie möglich sein (für anständige Nichtabstreitbarkeit).Verwenden von SQL-Sequenzen mit Django

SQL SEQUENZEN sind die offensichtliche Antwort. Was ist der sauberste Weg, sie mit Django 1.8 und MySQL zu verwenden? Sie scheinen keine gute Möglichkeit zu sein, SEQUENZEN mit Django zu verwenden.

+0

MySQL unterstützt keine willkürlichen Sequenzen außer dem Autoinkrement-Feld, das Django bereits für das PK verwendet. –

+0

@Daniel Roseman Oh, das ist lahm. Ich dachte, das wäre eine grundlegende Funktion für jedes SQL DBMS. Was wäre dann der "Weg" um das zu lösen? Die Autoinkrement-Funktion nutzen? – Mikuz

Antwort

0

Da MySQL keine separaten Sequenzen hat, besteht die einzige Möglichkeit darin, eine neue Tabelle mit automatisch inkrementierenden IDs zu erstellen.

Wenn ich über das Design super relational denke, kann ich auch andere verwandte Daten in der neuen Tabelle speichern.

Die anderen Daten werden ansonsten redundant in anderen Tabellen gespeichert (redundant, da einige der anderen Tabellen zur Protokollierung dienen). Wenn Sie die Daten jedoch organisierter speichern, führt dies zu einer besseren Rückverfolgbarkeit und einer kleineren Datenbankgröße.