如何在Elixir中创建:mnesia
表?
有没有一种在创建时添加索引的方法?
例如,我想创建一个属性很少的User表。
答案 0 :(得分:2)
这是方法:
:mnesia.start
:mnesia.create_table(
User,
[{:disc_copies, [node()]},
attributes: [:id, :name, :job],
index: [:name, :job]
])
请注意,默认情况下将对第一个属性建立索引。 有关更多信息,请访问elixirschool.com/en/lessons/specifics/mnesia/#starting-mnesia
在创建表之前,您还需要创建模式。 注意第一个属性将被索引到节点吗?默认情况下。有关更多信息,请访问elixirschool.com/en/lessons/specifics/mnesia/#starting-mnesia
答案 1 :(得分:2)
在Elixir中使用Erlang的Mnesia界面很快会变得很累。另一种选择是使用Memento
,Amnesia
或EctoMnesia
之类的库。
这是在Memento中定义表格的方式:
defmodule MyApp.User do
use Memento.Table, attributes: [:id, :name, :email], index: [:email]
ennd
并创建它:
Memento.Table.create!(MyApp.User)
全面披露::我是Memento的作者。