他の3つのテーブルをIDでリンクしたいテーブル「link_tabl」があります。したがって、すべての行にトリプレット(id_1、id_2、id_3)があります。トリプレットのすべての要素に対して列を作成でき、すべてがうまくいくでしょう。
しかし、もっと欲しいです:=)
もう1つの「次元」を尊重する必要があります。トリプレット(テーブル間のリンク)を作成するアルゴリズムがあります。アルゴリズムは時々異なるリンクを出力します。
例:
table_personは人を表します。table_taskはタスクを表します。table_locは場所を表します。
つまり、IDのトリプレット(p、t、l)は、次のことを意味します。特定の人が特定の場所で何かをした。
タプル(人、タスク)はアルゴリズムによって変更されません。それらが与えられます。アルゴリズムは、タプル(p、t)の位置lを出力します。しかし、アルゴリズムがそのようなタプルの異なる場所を決定する場合があります。すべてのタプル(作成者、タスク)の最後の10個のトリプレットをテーブルに格納したいと思います。
そのための最良のアプローチは何でしょうか?
次のようなことを考えました。link_tableにすでにタプル(p、t)が格納されている場合は、場所のIDを行の次の空きスロット(列)に追加します。すでに10個の値がある場合(すべての列がいっぱい)、最初の値を削除し、すべての値を列iから列i-1に移動して、新しい値を最後の列に格納します。ELSEは新しい行を追加します。
しかし、これが良いアプローチであるかどうか、もしそうなら、それをどのように実現するかはわかりません...
私が理解した独自の部分的な解決策は、2つの列を作成できるということです。著者IDを保存するOnw。タスクIDを格納するもの。そしてによって
...
UNIQUE INDEX (auth_id, task_id)
...
それらにインデックスを付けることができます。だから今、私は値を列iからi-1にエレガントに移動する方法を理解する必要があります。=)
よろしくAufwind