4

各製品に多くのパラメータがある多くの種類の製品の製品テーブルを設計する方法で支持されているのと同様の問題があります

私は今RDFを使うと確信しています。上記の問題への回答でビル・カーウィンが行ったコメントの1つだけが理由です

しかし、私はすでにmysqlにデータベースを持っており、コードはphpにあります。

1)では、どのRDFデータベースを使用する必要がありますか?

2)アプローチを組み合わせますか?つまり、mysqlデータベースにクラステーブル継承があり、RDFに奇妙な製品属性があるだけですか?問題を引き起こしているのは単なる製品であり、考えられる属性と値の幅広い配列であるため、すべてをRDFデータベースに移動する必要があるとは思いません。

3)どのphpリソース、記事を見る必要がありますか?これは、これを作成するのに役立ちますか?

4)あらゆる種類の製品の属性と価値をよりよく保持する何かを構築するという上記の課題の文脈で、RDFをよりよく理解するのに役立つ記事やリソースが増えれば幸いです。何が起こっているのかを概念的に理解していると、うまくいく傾向があります。

私はこれに完全に初心者であり、プログラミングとデータベースに関する私の知識はせいぜい平均的であることを覚えておいてください。

4

3 に答える 3

2

さて、RDFの主な利点の1つはグローバルIDです。したがって、RDBMSスキーマでサロゲートIDを使用する場合は、単一のシーケンスからサロゲートIDを割り当てることができます。これにより、スキーマに対する特定のRDF拡張が容易になります。

したがって、あなたの場合、スキーマ内の製品および他のエンティティ(おそらくユーザーなど)のIDに単一のシーケンスを使用します。

おそらく、正規化されたRDBMSテーブルに必須フィールドを保持する必要があります。たとえば、カーディナリティが0-1のフィールドを持つ製品テーブルです。

あなたが追加のテーブルに保つことができる他のもの。

例:このように

create table product (
  product_id int primary key,
  // core data here
)

create table product_meta (
  product_id int,
  property_id int,
  value varchar(255)
)

create table properties (
  property_id  int primary key,
  namespace varchar(255),
  local_name varchar(255)
)

動的形式の参照データも必要な場合は、次のメタテーブルを追加できます。

create table product_meta_reference (
  product_id int,
  property_id int, 
  reference int
)

ここでの参照は、サロゲートIDを介してスキーマ内の別のエンティティを参照します。

また、別のテーブル、たとえばユーザーにメタデータを提供する場合は、次のテーブルを追加できます。

create table user_meta (
  user_id int,
  property_id int,
  value varchar(255)
)

私はこれを別の答えとして置きます。なぜなら、それは私の最初の答えよりも具体的な提案だからです。

于 2010-05-17T11:10:47.840 に答える
1

1&3)PHPとMySQLを使用している場合は、 ARC 2(Webサイトにはこれがプレビューリリースであると記載されていますが、これは必要なリリースです)またはRAPのいずれかを使用するのが最善です。どちらも、データベースベースのストレージを可能にします。 MySqlにデータを保存します

私の経験では、ARC 2の方が人気があり、よく維持されているようです。

2)すべてをRDFに移動した場合に、既存のコードベースをどれだけ変更する必要があるか、およびデータベース内の既存のデータに対してどのような種類のクエリを実行するかによって異なります。RDFとSPARQLを使用すると速いものもあれば、遅いものもあります。

于 2010-04-13T09:50:53.347 に答える
0

私はPHPでRDFを使用していませんが、一般に、1つのプロジェクトで2つの永続化テクノロジーを使用する場合、結果はおそらく1つだけを使用するよりも複雑でリスクが高くなります。

RDBMSアプローチを使用する場合は、次の属性を導入することで、よりRDFのようにすることができます。

  • すべてのサロゲートIDに単一のシーケンスを使用します。これにより、RDFの要件である一意の識別子を取得できます。
  • 必須プロパティにはベーステーブルを使用し、追加データにはサブジェクト+プロパティ+値の列を持つ拡張テーブルを使用します

データをRDFマッピング可能な形式に保つためにRDFエンジンを使用する必要はありません。

EAV RDFと比較すると、動的データモデリングのより表現力豊かなパラダイムです。

于 2010-05-16T11:54:05.977 に答える