Yes sorry, I was on vacation so the publication lagged a bit.

Let us know how it goes with the testing and if you need any help with the
use-case queries.

Michael

On Tue, Aug 9, 2016 at 2:53 PM, <[email protected]> wrote:

> Hi Michael,
> thank you for your feedback about this pattern!
> Since this is my first Neo4j project, I thought all these nodes and
> relationships meant a bad design and your reassurance is really helpful to
> me.
> I'll be glad to share my experience with the community if someone else
> will face similar situation.
>
> PS: because I wasn't able to se my post published, I asked the same on SO,
> so sorry for the duplicate.
> Kind regards
> Alessandro
>
>
> Il giorno martedì 9 agosto 2016 13:21:28 UTC+2, Michael Hunger ha scritto:
>>
>> I think your model looks quite good so far. One node per Media is totally
>> fine.
>>
>> In general I presume you want to see in your stream the 20 latest media
>> of users you follow.
>>
>> MATCH (me:User {id:{userid}})-[:FOLLOW]->(u:U
>> ser)-[:POSTS]->()-[:NEXT*0..20]->(m:Media)
>> RETURN u, collect(m) as medias
>>
>> Make sure to generate a large graph of the user, media, tag and follows
>> data to load-test your system and queries.
>>
>> HTH Michael
>>
>>
>>
>> On Mon, Aug 8, 2016 at 2:41 PM, <[email protected]> wrote:
>>
>>> Hello there,
>>> as a new Neo4j user, I'm here to ask you design advices for the
>>> following scenario.
>>> I would like to develop a mobile app with a social section that broadly
>>> acts like Instagram, therefore a feed with my last friends activity, their
>>> profile page, suggestions based on common interests and so on.
>>>
>>> (please take a look at the sketch attached).
>>>
>>> And here my questions:
>>>
>>> 1) While (User)-[FOLLOWS]->(User) relationship seams clear to me, with
>>> (User)-[POSTS]->(Media) first doubts come. Is it correct to add a node for
>>> every media a user will publish? Suppose 100-1000 pictures per user, it's
>>> clear that Neo4j should manage a lot of connections from early stages and I
>>> don't know if it's affordable in terms of required resources.
>>>
>>> 2) (User)-[LIKES]->(Media)
>>> Because I red there isn't an atomic counter that safety let me store a
>>> property in a Media node (example: {likes: 291}, I thought of this
>>> solution. But again, I see an exponential growth of relations: what are
>>> your considerations about this?
>>>
>>> 3) In my schema, I represented a user feed like a tree, attaching new
>>> media to the last one with the [NEXT] relationship.
>>> This way, when a user opens someone else profile, I can fetch for Media
>>> with descending order and arbitrary limit for paginated results. Am I
>>> correct or is there a best strategy?
>>> Maybe I could consider a Media root node, storing the last user's
>>> activity: this way I think it should be easier, from a user profile,
>>> querying for new followed user's activities, ins't it?
>>>
>>> Thanks in advance for any advice,
>>> Alessandro
>>>
>>>
>>> <https://lh3.googleusercontent.com/-3wYdcwObwyk/V6h98DgFLEI/AAAAAAAAAg0/X3j0_OVhCwg31sB1Xyx1evFs22l2bRNPACLcB/s1600/graph.png>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Neo4j" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to