Databazova struktura na mapovanie komplexnych dat
- David Ďurika
- Člen | 328
Zdravim,
idem robit web kt. bude sluzit na mapovanie komplexnych dat.
Ide o to ze:
mam nasledovne ‚hlavne‘ entity: osoba, lokalita (obec, gps bod, krajina…), kniha, …
kazda hlavna entita ma atributy roznych typov:
- osoba: meno, datum narodenia, datum smrti, povolanie, zaluby, ...
- lokalita:
- obec: nazov, poloha na mape, pocet obyvatelov, ...
- gps bod: nazov, co tam bolo (jazero, pramen, pamiatka, ....)
- krajina: nazov, pocet obyvatelov, ...
- kniha: pocet kapitol, pocet stran, napisana v roku, typ, ...
a tieto hlavne entity su medzi sebou rozne poprepajane:
- kniha: n:m autovov [osoba], n:m postavy v knihe [osoba], n:m [lokalita], ....
- osoba: n:m rodinne vztahy (otec, mama, surodenci, ...) [osoba], n:1 narodeny v [lokalita], ....
je to volna a dost komplikovana struktura dat (toto je len taka zbezna analyza)
Ako navrhnut DB strukturu?
- pouzit CMS pristup: attribute, attributeType, node, nodeType, node_attributes, node_relations, relationType
- alebo si pre kazdy entitu, typ atributu a vztah spravit zvlast tabulky
Rad by som pocul vas nazor, ako [by]ste riesili taktuto situaciu, vyhody nevyhody jednotlivych rieseni, popripade navrh nejakeho ineho riesenia dakujem.
(viem ze sa to netyka uplne nette, preto som to dal do ‚Obecná diskuse‘ snad to nebude nikomu prekazat;)
- Filip Procházka
- Moderator | 4668
Pokud máš finální počet těch typů entit (nebo se aspoň nebude rozšiřovat moc často, tak bych to napsal celé ručně, protože z toho je vidět, že časem tam dostaneš nějaký nápad jak customizovat tu aplikaci aby se k nějakým typům chovala jinak a když to máš zvlášť tak je to vždycky lepší.
Pokud máš finální počet attributů… višco :)
Pokud ne, tak si udělej strukturu na kterou to půjde mapovat dynamicky.
- David Ďurika
- Člen | 328
Nedavno som objavil grafove databazy a to je presne to co potrebujem!
ak by mal niekto zaujem o grafove DB tak: zdrojak.cz a php wrapper na neo4j
Editoval achtan (17. 1. 2014 8:11)
- David Matějka
- Moderator | 6445
jo, grafovy databaze jsou pekny. mrkni taky na orientdb, pokud si na ni jiz nenarazil
- bazo
- Člen | 620
s neo4j sa velmi dobre pracuje, cypher je celkom jednoduchy a silny. na
niektore veci si vystacis len s traverzovanim. ale nepodporuje niektore bezne
funckie z sql ako praca s datumom, stringami a ine.
existuje celkom slusny ogm postaveny nad neo4jphp https://github.com/…eo4j-PHP-OGM,
niekde mam k nemu aj rozsirenie pre nette.
orientdb sa mi zda taky viac low level, ale zas ma vlastnosti aj dokumentovej databazy. a doctrine odm este nepodporuje pracu s grafmi.
ale zas je zadarmo oprotin neo4j
- bazo
- Člen | 620
je to free pre opensource alebo pre velmi male firmy, inak stoji 12000 dolarov/eur http://www.neotechnology.com/price-list/
ale nainstalovat si mozes aj enterprise verziu, len to nebude licencne koser :)