Mnesiaを理解するための私の探求において、私はまだリレーショナル用語で考えることに苦労しています。だから私はここに私の闘争を置き、それらを解決するための最良の方法を求めます。
1対多の関係 私にはたくさんの人がいると言ってください、
-record(contact, {name, phone}).
今、私は電話を常にリストとして保存するように定義できることを知っているので、人々は複数の電話番号を持つことができます、そしてそれがそれを行う方法だと思います(そうですか?それでは、これを逆に調べるにはどうすればよいですか?たとえば、番号の名前を見つけますか?)。
多対多の関係 では、人を入れることができる複数のグループがあると仮定しましょう。グループ名には意味がなく、単なる名前です。概念は「unixシステムグループ」または「ラベル」です。素朴に、私はこのメンバーシップをプロップリストとしてモデル化します。
{groups [{friends, bool()}, {family, bool()}, {work, bool()}]} %% and so on...
たとえば、上からの「連絡先」レコード内のフィールドとして。グループ名に基づいてグループのすべてのメンバーをすばやく検索できるようにし、個人が登録されているすべてのグループを検索できるようにする場合、mnesia内でこれをモデル化するための最良の方法は何ですか?もちろん、これをグループ識別子だけを含むリストとしてモデル化することもできます。mnesiaで使用する場合、これをモデル化するための最良の方法は何ですか?
この質問がばかげている場合はお詫び申し上げます。mnesiaに関するドキュメントはたくさんありますが、全体的な使用法の良い例がいくつか欠けています(IMO)。