(強力な)リレーショナルデータベースとしてのDrupal


8

Drupalsiteを作成して、同じ研究トピックに取り組んでいる世界中の人々が共同作業やコミュニケーションを行うためのプラットフォームを提供したいと考えています。(したがって、Drupalは優れた選択だと思います)。

ただし、このWebサイトには、リレーショナルデータベース(Webサイトの訪問者にとって非常に興味深い調査ツールとなる)も含める必要があります。このデータベースのテストバージョンは既にoooベースに存在します。50のテーブルがあり、それらの間に多対多および1対多の関係が多数あります。非常に基本的には、個人、イベント、組織間の関係を記録します。

カスタムコンテンツタイプを作成し、エンティティ接続モジュールを使用することで、drupalでリレーショナルデータベースを作成できることを知っています。ただし、Drupalがこれらのデータをmysqlデータベースに保存する方法を見てみると、データベースを構築するこの方法は、データのクエリ(または[ソーシャルネットワーク]それらの分析ソフトウェア)。データを簡単にクエリできる可能性は、私のデータベースにとって非常に重要です。

drupalサイトに2番目のデータベースを追加できることはわかっています(http://drupal.org/node/18429を参照)。しかし、それが私の問題の解決策であるかどうかはわかりません。

私が知りたい非常に短い:

(1)Drupalが一部のコンテンツタイプのデータをmysqlデータベースに保存する方法を、データを分析するために(そしてそれらを簡単にクエリできるように)より「自然」に見える方法に変更できるかどうか

(2)drupalサイトに2番目のmysqldatabaseを追加できるかどうか。このサイトは、カスタム(より「自然」)な方法でいくつかのコンテンツタイプのデータを整理します。できれば、ドルーパルサイトのユーザーは、同じデータベースに保存されているかのように、コンテンツを追加してこれらのデータを分析できる必要があります。

誰かが私を助けてくれるなら私はとても感謝しています!

回答:


3

データベースの操作は順調です。私自身の経験から、Drupalが信頼できるデータを維持することを信頼/許可することは嫌いです。そして、すでに堅牢なデータベースを持っているので、それはあなたにとっても良い選択肢ではないように思えます。

以上のことから、drupalで発生するノード/コンテンツの節約に単純にフックしたいようです。その後、外部データベースに接続して、選択したデータを処理して挿入することができます。

ノードAPIフック -D6には同様の機能がありますが、名前が異なります。プロセスには多くのフックポイントがあります。フォーム変更して、独自の送信機能を追加することもできます。


2

コンテンツタイプとそのフィールドをデータベースに保存する独自のワークフローが必要な場合は、Field Storage APIをご覧ください。すべての「データベースアクセス」を実行するために使用されます。

たとえば、MongoDBモジュールを見て、どのように実装できるかを確認できます。(SQLモジュールが必要なのは、このモジュールを例として使用しているだけです)。

また、デフォルトのDrupal DB以外の場所にエンティティ全体(つまりコンテンツタイプ)を保存する方法について説明している記事「Drupal 7のリモートエンティティ」も参照してください。


1

最近、Drupal <=> Neo4J統合のサンドボックスを開始しました。

http://drupal.org/sandbox/Letharion/1861580

それはまだ非常に初期の段階ですが、Neo4jは、より優れたクエリを可能にする方法のように思えます。ただし、Drupalがデータを保存する方法を変更するのではなく、コンテンツ間のリンクを複製するという考えです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.