So for the job at hand, what do you suggest? Mysql or graph?
On Sat, Sep 14, 2013 at 12:04 AM, Josh Jordan <josh.jor...@gmail.com> wrote: > Don't fool yourself into thinking that Facebook is using a single data > store. Facebook has a massive set of resources Remember that they have > their own PHP compiler. > > They are most certainly using multiple data stores redundantly and > querying the right one for the job at hand for each particular piece of > functionality. > > > On Friday, September 13, 2013 10:29:24 AM UTC-4, Yash Ladia wrote: >> >> Ok I got your point behind not using Mongodb. But the project is similar >> to facebook and facebook uses graph. So, what advantage can one get by >> using graph. And why shouldn't I use graph for this project. In this >> project, users will post status updates too and those updates will have >> tags. So think of a share model that has like 5 tags. So, should I create a >> tag model and then a share has many tags, or is there a better solution? >> >> On Friday, 13 September 2013 14:46:32 UTC+5:30, Peter Hickman wrote: >>> >>> On 12 September 2013 16:44, Yash Ladia <ladi...@gmail.com> wrote: >>> >>>> Thanx for your reply.My problem is that at a later point of time this >>>> would account for very large data set as the users will increase. I want to >>>> optimize my website and want to save time on data query from the >>>> database.Also, i will be looking for similar user profile based on user's >>>> attribute like(taste in music,movies,interests etc).I want this to be done >>>> very efficiently and in a proper manner so that there is less complexity in >>>> writing the code. >>>> >>> >>> Having a large amount of simple data is not the same problem as having >>> complex data. If all you are storing is key value pairs you could have a >>> table like this >>> >>> class Interest < ActiveRecord::Migration >>> def change >>> create_table :interests do |t| >>> t.integer :user_id, :null => false >>> t.string :type, :null => false >>> t.string :value, :null => false >>> t.timestamps >>> end >>> end >>> end >>> >>> And you would store it as: >>> >>> Interest.create(:user_id => user.id, :type => 'music', :value => >>> 'Status Quo') >>> Interest.create(:user_id => user.id, :type => 'movie', :value => 'The >>> Color Purple') >>> Interest.create(:user_id => user.id, :type => 'hobby', :value >>> => 'Fishing') >>> Interest.create(:user_id => user.id, :type => 'food', :value >>> => 'Cheese') >>> >>> and have a has_many link from the User model to retrieve the data. This >>> sort of data is exactly what an RDBMS is best suited for. Of course if it >>> is just key value pairs then something like Redis is also a good tool too. >>> >>> MongoDBs strength is document storage for unstructured data. The problem >>> is that the data you have is neither a document nor unstructured. This is >>> not to say that you cannot store key value pairs in MongoDB but it is not >>> the best tool for the problem you describe. >>> >> -- > You received this message because you are subscribed to a topic in the > Google Groups "Ruby on Rails: Talk" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/rubyonrails-talk/697882hLn4I/unsubscribe > . > To unsubscribe from this group and all its topics, send an email to > rubyonrails-talk+unsubscr...@googlegroups.com. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rubyonrails-talk/4a46e26b-e9d8-4383-ab9c-b5ee3db8b000%40googlegroups.com > . > > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAEnW1Xeu1%2B7WYWti2ejPubTSs%3DY74o3%2BGt-69WhgCDWTMieuQg%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.