Wenn Sie mit MySQL 5.7.6, dann könnten Sie auch GENERATED COLUMNS
aus der Nutzung docs (Sie den Abschnitt nach unten scrollen müssen "CREATE TABLE und generierten Spalten"):
Wie von MySQL 5.7.6 unterstützt CREATE TABLE die Spezifikation von generierten Spalten.
Generierte Spalten entweder
- virtuelle sein kann, das heißtberechnet on the fly, wenn die Spalte gelesen wird, ähnlich eine Ansicht wie @GordonLinoff vorgeschlagen
oder
- gespeichert, dh sie Platz im DB besetzen und jedes Mal berechnet bekommen die Reihen
Beispiel eingefügt oder aktualisiert:
-- calculated on-the-fly when reading:
create table post (
id int,
user_id varchar(20),
affinity int,
weight int,
decay int,
RANK int GENERATED ALWAYS AS (affinity*weight*decay) VIRTUAL
);
oder
-- calculated during insert/update:
create table post (
id int,
user_id varchar(20),
affinity int,
weight int,
decay int,
RANK int GENERATED ALWAYS AS (affinity*weight*decay) STORED
);
was meinst du Ansicht? ansicht in mvc? oder etwas in MySQL? –
Kommt drauf an. Wenn Sie MySQL 5.7.6+ verwenden, dann gibt es auch GENERATED COLUMNS, was in diesem Fall einfacher sein könnte. Sie sind ziemlich neu, denke ich, und ich habe nur zufällig von ihnen gehört ;-) – PerlDuck
@sadbeginner Gordon bedeutet eine [MySQL VIEW] (http://dev.mysql.com/doc/refman/5.7/en/create- view.html). Sie können sich das als eine vordefinierte SELECT-Anweisung vorstellen, die in der Datenbank gespeichert ist und wie eine Tabelle verwendet werden kann, solange Sie nur _auswählen. Es gibt auch VIEWS, in die eingefügt werden kann, aber dann wird es kompliziert. Mit Gordons Ansicht können Sie z.B. 'Wählen Sie * aus v_t' oder' wählen Sie user_id aus v_t mit Rang = 15'. – PerlDuck