Social Network Status Updates – Database Schema

MySQL DBMS

Here’s a simple database schema which can be used in cases where you want to take user status input. The entities available are users, updates, comments & likes. Additional entities can be added as required. Also, for simple user registration and status updates it will be more than enough.  Schema derived by studying popular social networks like Facebook / Twitter / Google+ Status Updates mechanism. The schema uses MySql.

Schema Diagram:

updatebox4

MySQL Create Script:
— phpMyAdmin SQL Dump
— version 3.2.0.1
http://www.phpmyadmin.net

— Host: localhost
— Generation Time: Apr 03, 2013 at 09:56 PM
— Server version: 5.1.37
— PHP Version: 5.3.0
SET SQL_MODE=”NO_AUTO_VALUE_ON_ZERO”;

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

— Database: `updatebox`

— ——————————————————–

— Table structure for table `comments`

CREATE TABLE IF NOT EXISTS `comments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`text` text CHARACTER SET utf8 NOT NULL,
`created_at` int(11) NOT NULL,
`update_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

— Dumping data for table `comments`

— ——————————————————–

— Table structure for table `likes`

CREATE TABLE IF NOT EXISTS `likes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`update_id` int(11) NOT NULL,
`created_at` int(11) NOT NULL,
`dislike_user_id` int(11) DEFAULT NULL,
`like_user_id` int(11) DEFAULT NULL,
`comment_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

— Dumping data for table `likes`

— ——————————————————–

— Table structure for table `updates`

CREATE TABLE IF NOT EXISTS `updates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`text` text CHARACTER SET utf8 NOT NULL,
`picture` varchar(255) DEFAULT NULL,
`location` varchar(255) DEFAULT NULL,
`created _at` int(11) NOT NULL,
`video` varchar(255) DEFAULT NULL,
`tags` varchar(255) DEFAULT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

— Dumping data for table `updates`

— ——————————————————–

— Table structure for table `users`

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(255) NOT NULL,
`mid_name` varchar(255) DEFAULT NULL,
`last_name` varchar(255) NOT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`address` varchar(255) NOT NULL,
`phone` varchar(255) NOT NULL,
`dob` int(11) NOT NULL,
`about` text NOT NULL,
`user_type` int(11) NOT NULL,
`created_at` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

— Dumping data for table `users`

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Leave a Reply

Your email address will not be published. Required fields are marked *