Antoine,
the design sounds good from the initial in-the-head look. The only
thing I see is the modeling of groups. I would imagine something like

http://yuml.me/diagram/scruffy/class/[user1]-circle%3E[friendsU1],[user2]-partOf%3E[friendsU1],[user1]-circle%3E[jobU1],[user2]-partOf%3E[jobU1]

where User2 is part of two of User1 circles. I agree that, if all
relationships are through circles, you probably don't need users-user
relationships at all.

Does that make sense?

Cheers,

/peter neubauer

GTalk:      neubauer.peter
Skype       peter.neubauer
Phone       +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter      http://twitter.com/peterneubauer

http://www.neo4j.org               - Your high performance graph database.
http://startupbootcamp.org/    - Öresund - Innovation happens HERE.
http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.



On Tue, Sep 20, 2011 at 7:29 PM, ant-1 <apo...@woozworld.com> wrote:
> Hi,
>
> I'm our company software architect, and I'm new to GraphDBs. But as we're
> building a Google+-like, we realized the need for something like Neo4j. And
> as this community seems the best, we settle for you guys :)
>
> Anyway. Onto the design. Call us fools, but we're trying to redo Google+
> (except for kids). I need help with the design, for starters.
>
> Here's the Domain:
> - Users
> - Users have friends
> - Users can place friends in one or more group (circle for G+), groups being
> only visible to the user creating them.
> - Users can create posts, which are visible either by all his friends or
> only one or more groups.
>
> I realize the hardest part is to retrieve feeds. For example, I want the
> posts feed for user X for his group G.
>
> Here's what I envision:
> - User are nodes
> - Users have FRIEND_WITH relationships (direction being the initial
> requester to the other)
> - Groups are nodes.
> - Group has a CREATED_BY relationship to user
> - Group has BELONGS_TO relationships to multiple users
> - Post are nodes
> - Post has CREATED_BY relationship to the user
> - Post has VISIBLE_TO relationship to one or more groups
> - PostingEvent is a node with a timestamp property
> - PostingEvent has a RELATED_TO relationship to the user and the post
>
> And we would have a timeline index (Lucene or B-tree, I have no idea) for
> feeds retrieval.
>
> 1. Do you see issues with my design?
> 2. What to do with postings to "All my friends", do I create a "All friends"
> group? In that case do I still need the user-to-user relationships?
> 3. I never worked with timeline indexes and such, so I could use some
> readings on the subject, even theorical ones, even dead-tree books. Please
> don't hesitate to make recommendations.
>
> Thanks !
>
> Antoine
>
> --
> View this message in context: 
> http://neo4j-community-discussions.438527.n3.nabble.com/Design-help-for-G-like-app-tp3353185p3353185.html
> Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to