Legjobb metodika emberi relációk tárolására
 Heelló,
Az alábbira várnék néhány ötletet.A fő a hatékony performancia orientált megoldás. Kapcsolatokat kellene tárolni db-ben emberek közt, hogyan valósítanátok meg, db-modell, pl hibernate oo modell? Különböző kapcsolati fajták lehetségesek (elsődleges:szülő,gyerek,partner,barát; másodlagos:nagyszülő,sógor/sógornő,unoka,testvér,-fél testvér,nagybácsi/nagynéni,...)
Szabályozni lehet:
- láthatóságot. Pl. Az egyik barátom ne lássa a családi kapcsolataimat. A családi kapcsolatai.. |

"A másik a lehetséges kapcsolatokat"
Ezer embernél ez 1000! (faktoriális)... tényleg egyszerű ötlet...
csak kivitelezhetetlen.
Remekül félreértetted.
"Lehetséges kapcsolat" alatt a "nagyszülő", "apa", "anya", "barát", "nagybácsi"... stb értékeket értettem.  |
4 tábla:
1 felhasználók:
UID,Nev,Stb
2 Kapcsolatok
ID,Ki,Kinek,KiKapcsolat1ID,KiKapcsolat2ID,KinekKapcsolat1ID,KinekKapcsolat2ID,KiLathatID,KinekLathatID
3:Kapcsolat típusok
ID,Nev
1,Szülő
2,gyerek
3,...
4,nagyszülő
5,sógor
4:Láthatóságok:
ID,KapID,Szulo,Gyerek,...,Nagyszulo,Sogor,...
2. tábla értelmezése:
ID:sorszám
Ki:felhasználó.UID
Kinek:felhasználó.UID
KiKapcsolat1ID:Idegen kulcs a Kapcsolat Típusok táblához, a "Ki" első kapcsolat típusa "Kinek" felé
KiKapcsolat2ID:Idegen kulcs a Kapcsolat Típusok táblához, a "Ki" második kapcsolat típusa "Kinek" felé
KinekKapcsolat1ID:Idegen kulcs a Kapcsolat Típusok táblához, a "Kinek" első kapcsolat típusa "Ki" felé
KiLathat:"Ki" által megadott láthatóságok, Lathatosagnak az idegen kulcsa (Lathatosag.KapID), ott pedig már be van állítva az adott IDhez h miket láthat (Szulo=0, Gyerek=1 ). Így egy Kapcsolathoz max 2 db láthatóság sor kell (1 a "Ki"-nek, 1 pedig a "Kinek"-nek)
Többi egyértelmű sztem.
Az meg h ki kicsodának az ismerőse a kapcsolattáblából lekérdezhető könnyen, ahol az adott személy UID-je megtalálható vagy a Ki VAGY a Kinek mezőben.  |
"A másik a lehetséges kapcsolatokat"
Ezer embernél ez 1000! (faktoriális)... tényleg egyszerű ötlet...
csak kivitelezhetetlen.  |
Nekem egy nagyon egyszerű ötletem van neked.
4 darab tábla kell.
- Az első az embereket tárolja
- A másik a lehetséges kapcsolatokat
- A harmadik a kettő közti kapcsolótábla
- A negyedik pedig azt, hogy ki melyiket láthatja  |
Mesélj az ágens szempontokról :)
Erről eszembe jut egy kérdés
Az életben hogy döntöd el, hogy ki barátod és ki nem?
Például nálam az arrogancia halovány jele is levon a barátság fokából/értékéből
Ha már eldöntötted, hogy az illető a barátod, akkor a barátok közé sorolod, nem? Viszont ha valaki a barátod, akkor máris más megvilágítás alá kerül, mert a barátod
Persze ehhez kell egy szótár, ami meghatározza, mi a barát A mmmágikus config tábla  |
Több reláció összevonása? Nos igen hívhatjuk így is
Például kivételkezelés:
Tegyük fel hogy nincs a mágikus configtáblánkban olyan megfeleltetés, ami lefedné az adott eseményt, ami bekövetkezett. Ezért előre megadunk pár mezőt, kivétel1, kivétel2...stb ezek értékeit betesszük az aritmetikai részbe és máris befojásolható vele a bemneti paraméter.
Ha mondjuk az összes szintet akarjuk eltolni, akkor a küszöbfüggvény határértékét tologatjuk.
Ha két küszöbfüggvényt kötünk össze, akkor pl. lehet úgy, hogy az első függvény kimenete a következő függvény határértéke. Na, ezt már mindenkinek fantáziájára bízom sakkozza ki, mi lehet belőle  |
Mellesleg megjegyzem nem az egész rendszer megkreálása volt a kérdés csak a jogosultsági szintek meghatározása.
Az egybemenetes küszöbfüggvény mmmágikus configtáblával arra azért alkalmas hogy meg tudjuk mondani, hogy a haverunk milyen képeket nézhet meg és milyeneket a barátunk és milyeneket a szomszéd csak egy kicsit át kell gondolni. Minden eseménynek tehát jogosultsági szintet adunk, ha küszöbfüggvény átenged, akkor mehetnek műveletek, ha nem akkor nem.
Amiről Te beszélsz az egy másik probléma, ott már szükség van több paraméterre is, melyeket együttesen kell vizsgálni a függvényben. Ezt több küszöbfüggvény 'sorbakapcsolásával' lehet megoldani. Vagy mondjuk megoldhatjuk ezt már az alább említett több bemenetes fuzzy függvénynek is.  |
Most kicsit több időm van
Na szóval mágikus config tábla:
Lehet akárhány value is, de az már egy több bemenetes fuzzy függvényt igényel pl itt egy 3 bemenetes ábrája:
 |
Az ágensnek nem az a lényege, hogy eltárold a kapcsolatokat, hanem az hogy szabályrendszert alkoss, amiben el tud dőlni, hogy mik lesznek a kapcsolatok. Annyi megjegyzéssel, hogy kivételt azért lehessen kezelni benne egyszerűen, mondjuk ha Gipsz Jakabot valamiért más megvilágításba akarjuk helyezni: 'mert csak'.
De persze én nem akarom osztani az észt Nem értek a lovakhoz  |
Meséltem lentebb megtalálod  |
Mesélj az ágens szempontokról :) De tényleg érdekel, biztos tudsz valamit.
Az a bajom, hogy tök jó, hogy mondtál valami tippet/trükköt, hogy hogy lehet összevonni több relációt is, de egyelőre nem látom azt, hogy ez hogy működhetne.
Pl. szükség van arra, hogy mondjuk 3 mélységben feltárd és megjelenítsd egy fickó összes kapcsolatát.
 |
Szerintem itt a gráf nem elég. Itt inkább ágens szempotokat kell figyelembe venni. Azért, mert nemcsak fastruktúra jöhet létre, ha nem kör is. Ráadásul úgy, hogy mindez időben vagy más feltételektől változhat is.
Javítsatok ki, ha nem jól látom a problémát!  |
Na várj.
Van ez a mágikus config táblád.
Mi van benne? Feltételezem itt nálad 1 típushoz csak egyedi érték tartozhat, pl. a szomszédnak és féltestvérnek nem lehet ugyanaz az értéke, különben a függvényed 1-es bemeneti értékkel nem tudná megállapítani azt, hogy az adott user az kicsoda neked. A barátod? Vagy a legjobb haverod és féltestvéred is egyben?
id, type, value
1 barát 1
2 átlagos barát 0.5
2 testvér 2
3 féltestvér 0.5
4 anya/apa 3
Azt mondod nem tárolsz relációkat.
Hogy/hol viszed fel akkor pl. azt, hogy Sanyi testvére Béla?
Valahol ezt meg kell tegyed, pl. egy relations táblában.(De ha ezt megtetted, akkor már tároltad is a kapcsolatokat...)
relations
userId1 userId2 type
Gondolom itt csak egyszerűsíteni próbálod azzal az életet, hogy minden személyhez csak 1 relációt viszel fel, függetlenül attól, hogy valójában hány valós kapcsolat van a személyek közt.
Hogy jelenítesz meg egy gráfot, amin az éleken rajta van, hogy milyen kapcsolatban állsz az illetővel?
Minden esetben egyértelműen kikövetkeztethető a szumma számból a kapcsolatok fajtája és jellege?
Láthatósági kérdéseket hogyan szabályoznál?
Pl. van 2 haverom, de ha az egyik belép, akkor ne lássa a többi haverjaimat; vagy ha belép anyám ne lássa a haverjaimat.  |
Na jó, lehet kicsit spóroltam a szövegezéssel, de remélem most már jobban lejön, hogy miből áll.
Úgy gondolom ide úgyis programozók járnak, ezért csak a megoldáshoz vezető elveket írnám le.
Tudja itt minden PHP-s hogy kell egy függvényt definiálni vagy hogy kell egy mezőértéket beszúrni MySQL-be.
 |
Potn ezt mondtam, hogy sok kapcsolatnál nem az a nagy feladat, hogy kitaláld egyenként kinek mire van joga, hanem hogy ne terheld szét vele a szervert.  |
Mégvalami a küszöbfüggvényes megközelítéssel nem tárolunk kapcsolatokat, hanem szabályrendszert állítunk fel, mely meghatározza a gyakorlatban a kapcsolatok szintjét, melyet bármikor módosíthatunk pl. hibakezelési metódusokkal is vagy szabály szinten, úgy hogy configot írjuk át vagy egyedileg egy új küszöbfüggvény határértékkel. Egyszóval ezzel minden ágens előfordulás megoldható.
A küszöbfüggvény így 1 összegzett bemenő paraméterből és egy határérték paraméterből dolgozhat, amit bármikor módosíthatunk. Ilyen módon egyetlen függvénnyel megoldhatjuk az egészet csak a configot kell jól belőni és működés/működtetés közben csak a határérték paramétert kell vezérelni
Ennél gyorsabb vagy átláthatóbb megközelítést tud valaki, akkor ne kíméljen!
:  |
Aham egészen addig míg csak 1-2 barát jogosultsági szintjéről van szó.

Mellesleg egyszerüen megadhatsz egy értéket a configtable-ban csak Józsira is, szóval ezt a problémát egyszerűen le lehet vele kezelni. Sőt még át is írhatod így az értékét bármikor a PHP-ban is Például így azt is megteheted, hogy az első küszöb átlépése után mondjuk alacsonyra állítod a prior értékét a configban és már legözeleb nem megy át, vagy fokozatosan növeled vele. Minél többször szeretné azt jogot használni, annál nagyobb lenne az esélye legközeleb, míg egyszer csak sikerül neki
Szóval ebben a megoldásban rengeteg lehtőség rejlik még. A fent említetett példát nem is nagyon érdemes máshogy megközelíteni. Azaz ha azt akarom hogy józsi csak egyszer nézze meg a képeket és legközelebb már nem azt is meg lehet vele csinálni
 |
Ez tök jó ötlet szerintem! 
Csak itt szerintem az abaj, hogy ő egyénenként akarja szabályozni.
Pl van két barátom Béla és Józsi, de Béla ne láthassa a farmville postjaimat, Józsi meg ne láthassa a fényképeimet  |
Ejha, ez már egy kis AI
A probléma küszöbfüggvénnyel oldható meg a legjobban szerintem. Ha függvény elér egy bizonyos határértéket, akkor átenged.
Gyakorlatban ez úgyis kinézhet, hogy létrehozol egy "config" táblát, amiben minden tulajdonsághoz egy érték párosul szintekre bontva. Pl. a barát mondjuk csak 1-et ér a testvér meg 2-t az extra pl az egypetéjű meg mondjuk 3-at, a szomszéd meg 0,5-öt.
Namost ha megvan egy ilyen tábla, akkor már logikailag is összegezheted bárhol, a fügvény bemenő paratméterét. Pl a szomszéd egyben tesód és barátod is, akkor 0.5+2+1 ez már ugye példa szerint 3.5 ez biztos VIP kategória.
Ezek után minden kívánt függvénynél megadod a határértéket és ha true-val tér vissza, akkor megkapja jogosultságot pl. A kód gyors lesz és átlátható és egy idő után könnyen tudod majd javítani, hiszen csak a küszöbfüggvényeket kell pakolásznod és/vagy a "config" táblát módosítgatnod, attól függően, milyen szintű változást akarsz megvalósítani.  |
Ez is egy közösségi portál fejlesztő kérdés...
Van egy user, és vannak ismerősei, berakhatja csoportba az ismerősöket mint pl. család, haverok...
Aekkor van egy user táblánk ahol szerepel az user adati.
Van egy kapcsoló tábbla userek közt, ahol szerepel melyik csoportba van, és van egy plusz kapcsól tábla ahol szerepel az adot kapcsolat melyik csoportba van, itt még megadhatod hogy ez a kapcsolat melyik kapcsolatokat láthatja...
pl.:
˙ ˙ ˙ ˙csoportok
˙ ˙ ˙ ˙ ˙ |
User - kapcsolat - Imserő
˙ ˙ ˙ ˙ ˙ |
˙ ˙ ˙látható csoportok |
Mint az egymásba ágyazott FOR ciklusok 
Egy mai gépen nem probléma a Prolog sebessége.  |
És sebességre ez milyen?  |
Szia!
Használd az SWI Prolog java interfészét: JPL
Ezt a fajta feladatot nagyon egyszerű Prologban leírni.
Ekkor szövegfájlban definiálhatod az adatbázist és a hozzá tartozó kapcsolatokat, illetve a Javából függvényhívással indítható Prolog interpreter az összes kérdésedre megadja a választ. Az adatbázis, ami a Prolog szabályokat tartalmazza, viszonylag egyszerűen generálható program segítségével is, ha már megvannak az adatok.

Üdv, P  |
mind2  |
db-modell, pl hibernate oo modell
Relacios DB vagy oop modellre vagy kivancsi..?  |
Heelló,
Az alábbira várnék néhány ötletet.A fő a hatékony performancia orientált megoldás. Kapcsolatokat kellene tárolni db-ben emberek közt, hogyan valósítanátok meg, db-modell, pl hibernate oo modell? Különböző kapcsolati fajták lehetségesek (elsődleges:szülő,gyerek,partner,barát; másodlagos:nagyszülő,sógor/sógornő,unoka,testvér,fél testvér,nagybácsi/nagynéni,...)
Szabályozni lehet:
- láthatóságot. Pl. Az egyik barátom ne lássa a családi kapcsolataimat. A családi kapcsolataim ne láthassák haveri kapcsolataimat.
Hogyan tárolnátok pl. a másodlagos kapcsolatokat,kellene-e őket tárolni vagy mondjuk elég lenne kalkulálni? Már van prekoncepcióm, de a tietekre is kíváncsi vagyok.
Köszi |
|