Drupal come (potente) database relazionale


8

Mi piacerebbe creare un sito Drupals, fornendo una piattaforma per persone in tutto il mondo che stanno lavorando allo stesso argomento di ricerca per collaborare e comunicare. (Sono sicuro che Drupal è quindi una scelta eccellente).

Tuttavia, questo sito Web dovrebbe includere anche un database relazionale (che sarà uno strumento di ricerca molto interessante per i visitatori del sito Web). Una versione di prova di questo database esiste già in ooo base: ha 50 tabelle con molte relazioni molti-a-molti e uno-a-molti tra loro. Fondamentalmente registra i rapporti tra persone, eventi e organizzazioni.

So che è possibile creare un database relazionale in drupal creando tipi di contenuto personalizzati e utilizzando il modulo di connessione entità. Tuttavia, osservando il modo in cui Drupal archivia questi dati nel suo database mysql, temo che questo modo di costruire un database non sia molto utile per me, poiché sembra molto difficile interrogare i dati (o usare [social rete] software di analisi su di essi). La possibilità di interrogare facilmente i dati è cruciale per il mio database.

So che è possibile aggiungere un secondo database al sito drupal (vedi http://drupal.org/node/18429 ). Tuttavia, non sono sicuro che questa sia la soluzione al mio problema.

Molto breve, vorrei sapere:

(1) Se è possibile cambiare il modo in cui Drupal salva i dati di alcuni tipi di contenuto nel suo database mysql, in un modo che sembra più "naturale" per analizzare i dati (e poterli interrogare facilmente)

(2) Se è possibile aggiungere un secondo mysqldatabase al sito drupal, che organizza i dati di alcuni tipi di contenuto in modo personalizzato (più "naturale"). Se possibile, gli utenti del sito drupal devono essere in grado di aggiungere contenuti e analizzare questi dati, come se fossero salvati nello stesso database.

Sarei molto grato se qualcuno potesse aiutarmi!

Risposte:


3

Hai iniziato bene a lavorare con i database. In base alla mia esperienza, detesto fare affidamento / consentire a Drupal di conservare tutti i dati sensibili. E poiché hai già un database robusto, sembra che non sarebbe una buona opzione per te.

Detto questo, sembra che tu voglia semplicemente agganciarti al nodo / salvataggio del contenuto che si verifica in drupal. Sarai quindi in grado di collegarti a un database esterno ed elaborare ed inserire i dati comunque tu scelga.

Node API Hooks - D6 ha funzioni simili, appena nominate diversamente. Ci sono molti punti di aggancio nel processo. Puoi anche modificare i moduli e aggiungere le tue funzioni di invio.


2

Se si desidera disporre di un proprio flusso di lavoro per salvare i tipi di contenuto e i relativi campi nel database, è possibile consultare l' API di archiviazione dei campi . Viene utilizzato per eseguire tutti gli "accessi al database".

Ad esempio, puoi dare un'occhiata al modulo MongoDB per vedere come può essere implementato. (Vedo che hai bisogno di SQL DB, usa questo modulo come esempio).

Leggi anche l'articolo " Entità remote in Drupal 7 " che descrive come salvare l'intera entità (cioè il tipo di contenuto) in un posto diverso dal DB Drupal predefinito.


1

Di recente ho avviato un sandbox per l'integrazione Drupal <=> Neo4J.

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

È ancora nelle fasi iniziali, ma Neo4j sembra che sarebbe un modo per consentire una query molto migliore. L'idea non è comunque quella di cambiare il modo in cui Drupal archivia i suoi dati, ma piuttosto di duplicare i collegamenti tra i contenuti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.