为什么我的失忆指数在这个位置?
Why is my mnesia index in this position?
iex(6)> :mnesia.table_info(:users, :attributes)
[:id, :email, :foo, :inserted_at, :updated_at]
iex(7)> :mnesia.table_info(:users, :index)
[3]
iex(8)> :mnesia.add_table_index(:users, :email)
{:aborted, {:already_exists, :users, 3}}
我知道 Tab
是第一个索引,但为什么索引不是 2
而不是 3?索引是基于 1 而不是零,还是这里有其他原因?
Mnesia tables 包含具有类似记录格式的元组。在您的示例中,存储在 :users
table 中的元组看起来像:
{:users, 1, "f@b.com", "foo", {2016, 12, 24}, {2016, 12, 31}}
映射到:
Index | 1 | 2 | 3 | 4 | 5 | 6 |
Name | :users | :id | :email | :foo | :inserted_at | :updated_at |
由于元组是基于 1 的,因此将为 :email
值创建的索引将在元组的位置 3
上创建。
iex(6)> :mnesia.table_info(:users, :attributes)
[:id, :email, :foo, :inserted_at, :updated_at]
iex(7)> :mnesia.table_info(:users, :index)
[3]
iex(8)> :mnesia.add_table_index(:users, :email)
{:aborted, {:already_exists, :users, 3}}
我知道 Tab
是第一个索引,但为什么索引不是 2
而不是 3?索引是基于 1 而不是零,还是这里有其他原因?
Mnesia tables 包含具有类似记录格式的元组。在您的示例中,存储在 :users
table 中的元组看起来像:
{:users, 1, "f@b.com", "foo", {2016, 12, 24}, {2016, 12, 31}}
映射到:
Index | 1 | 2 | 3 | 4 | 5 | 6 |
Name | :users | :id | :email | :foo | :inserted_at | :updated_at |
由于元组是基于 1 的,因此将为 :email
值创建的索引将在元组的位置 3
上创建。