Social network related site. Need a help

Hi everyone.

So. There’s a large project and I need some help.

The main goal of the future site is to link together all builders,building-contractors,building companies,companies that sold construction machinery and equipment within the country. Also users will be divaded by locations

So, We have four type of web users.

1.builders

2.building-contractors

3.building companies

4.construction machinery companies(equipment and everything else)

During registration proccess unregistered user must choose location and type of user(1-4) to which he(she) wants to be related. Every user will have thier own profile(photo, private info). Also have to be private messaging and group creation options. How can I properly organize my db for that purposes. And what to use(yii-user or rights)? The main problem is how to implement sorting by location? how to organize my db( maybe field location or city to every table). For administring we have SuperUser for creation cities and local administrators. Local administrators must administer everything related to thier location(users,banners…). Any suggestions…