I am not sure whether this is the right platform to ask this question. But my problem statement is : I have a book shop & x no of clients (x is huge).
A client can t
From a high level, you will want to look into the fields of Machine Learning, Data Mining, and graph mining/analysis.
In terms of machine learning and data mining, you will want to look into collaborative filtering - I recommend this book. There is a lot of work in this field, notice how websites like Amazon have a feature that shows you what other items were purchased along with the item you are currently looking at.
In terms of building a social network, you will first need to figure out what database system you want to use. There exists graph databases like Neo4J and FlockDB that are designed with graphs in mind.. you may alternatively opt for something more general like MySQL instead, depends on how far you want to go.
Once you have that decided you'll want to leverage this "social graph" data, which is where concepts like random walks, community structure/detection, and centrality come in. I recommend going through this series of lectures Twitter gave at UC Berkeley to get a better idea of leveraging social data.