[90] Re:メタデータの関係付けプログラムについて
投稿者:(ぱ)
2007/02/20 02:13:25
>初めまして,ねこさんといいます。
ねこさんさん(でいいんでしょうか?) はじめまして。
>例
>Aというメタデータ内
><Keyword>仲間</Keyword>
><PKeyword>学校</PKeyword>
>
>Bというメタデータ内(Aと同じく)
><Keyword>相性</Keyword>
><PKeyword>仲間</PKeyword>
ええと、私はLOMについては今調べた知識しかありませんので、見当外れの
ことを言ってましたらすみません。
このモデルには正直ちょっと違和感を感じます。
a)あるデータについて、Keywordはひとつのような気はしませんし、
b)KeywordとPKeywordの区別はつけられるのか、という気がしますし、
c)LOMだと、他のリソースを参照する場合はRelationという要素を使うようですし。
>AのKeyword属性とBのPKeyword属性が同じなので
>AとBは関係しているようにしたいのです。
>
>これをDBに記述すると
>メタID メタデータ名 Keyword属性 PKeyword属性 リンク先ID
> 1 A 仲間 学校 2
> 2 B 相性 仲間
Keywordがひとつでよく、KeywordとPKeywordの区別があってよく、
ひとつのメタデータが参照するメタデータもひとつでよいのなら、
このテーブルでよいのでしょうが、それでよいのでしょうか?
ひとつのメタデータには複数のキーワードがあり、
あるメタデータから、共通するKeywordを含む(全ての?)メタデータへの
参照を持ちたいのなら、テーブルを分けて正規化するのがセオリーの
ように思うんですが、どうでしょうか。
>またこれを実現するための
>オブジェクト指向が聞けるとすごく嬉しいです。
>(これを先に教えていただけると嬉しいです)
「オブジェクト指向が聞けると」というのはちょっとよくわかりませんが (^^;
a)メタデータクラスとキーワードクラスができて、
b)メタデータクラスはキーワードクラスを0..*で集約していて、
c)キーワードクラスは、そのキーワードにより関連するメタデータへの
参照を保持するようにする。
または、LOMの構造を意識するなら、
a)メタデータクラスとキーワードクラスとリレーションクラスができて、
b)メタデータクラスはキーワードクラスを0..*で集約していて、
c)メタデータクラスはリレーションクラスも0..*で集約していて、
d)リレーションクラスは、そのメタデータと、何らかの要因(必ずしもそれは
キーワードの一致でなくてもよい)で関係するメタデータへの参照を
保持するようにする。
ということになるのではないでしょうか。
ズレたこと言ってましたらすみません。