I.Đặt vấn đề.

Mạng xã hội, hay còn gọi là mạng xã hội ảo (social network) là dịch vụ kết nối các thành viên cùng sở thích trên Intetnet lại với nhau với nhiều mục đích khác nhau.

  • Nút (node): Là một thực thể trong mạng. Thực thể này có thể là một cá nhân, một doanh nghiệp hoặc một tổ chức bất kỳ nào đó.
  • Liên kết (tie): là mối quan hệ giữa các thực thể đó. Trong mạng có thể có nhiều kiểu liên kết. Ở dạng đơn giản nhất, mạng xã hội là một đơn đồ thị vô hướng các mối liên kết phù hợp giữa các nút. Ta có thể biểu diễn mạng liên kết này bằng một biểu đồ mà các nút được biểu diễn bởi các điểm còn các liên kết được biểu diễn bởi các đoạn thẳng.

Blog này nhằm mục đích hướng dẫn xây dựng database và mối quan hệ giữa các thực thể của mạng xã hội Facebook:

  1. User.
  2. Post.
  3. Comment.
  4. PostCategory.

II. Xây dựng database.

1. Connect Object Explorer.

Capture.JPG

Với authentication : SQL Server Authentication. Bạn cần có account

Capture.JPG

2. Tạo database.

capture

3. Create table.

  • Bảng user. 

Capture.JPG

  1. id: định danh người dùng.
  2. name: tên người dùng.
  3. avatar: ảnh đại diện của người dùng.
  4. gender: giới tính của user.
  5. birthday: ngày sinh của user.
  •  Bảng PostCategory .

Capture.JPG

  1. id: định danh thể loại bài đăng.
  2. name: tên thể loại.
  • Bảng Post.

capture

  1. id: id của bài viết.
  2. images: Ảnh kèm theo bài viết( Null)
  3. content: nội dung bài viết.
  4. created: thời gian bài viết được tạo ra.
  5. privicy: chế độ của bài viết( để defalt là ‘Public’)
  6. feeling: trạng thái của bài viết.
  7. addresspost: địa điểm post bài.
  • Bảng Comment.

Capture.JPG

  1. id: id của người dùng khác.
  2. content: nội dung cmt.
  3. images: ảnh kèm theo nếu có.
  4. sticker: sticker ._.
  5. reply: phản hồi lại cmt.
  • Bảng tag.

Capture.JPG

  1. id: dùng liên kết trong thực thể tag friend của bài  bảng post và thực thế reply của bảng comment.

4. Database Diagram.

untitled-diagram-1

5. Mã nguồn.

create database DemoFacebook;
drop database DemoFacebook;

use DemoFacebook
/*Tạo bảng người dùng*/
create table tbl_user(
 id int primary key,
 name varchar(50) not null,
 avatar image not null,
 gender varchar(10) not null default 'Male',
 birthday datetime not null
);
drop table tbl_user;

/*Tạo bảng danh mục bài viết*/
create tabl tbl_postcategory(
id int identity primary key,
name varchar(150) not null
);
drop table tbl_postcategory;

/*Tạo bảng bài viết*/
create table tbl_post(
id int primary key,
images image not null,
content text not null,
created datetime not null default(getdate()),
privicy int not null default 'Public',
feeling int not null,
addresspost varchar null,
tagfriend int null
/*Khóa ngoại thể hiện bài viết do ai viết */
 user_id int,
 constraint fk_user foreign key user_id references tbl_user (id),
 /*Khóa ngoại thể hiện bài viết thuộc thể loại gì*/
 postcategory_id int ,
constraint fk_postcategory foreign key (postcategory_id) references tbl_postcategory(id)
/*Khóa ngoại liên kết phần tag fr của id 1 người dùng khác*/
tag_id int ,
constraint fk_tag foreign key (tag_id) references tbl_tag( id));
drop table tbl_post;

/*Tạo bảng bình luận, nhận xét, đánh giá*/
create table tbl_comment(
id int primary key,
content text not null,
 images image null,
sticker int null,
reply varchar null,
/*Khóa ngoại reply*/
tag_id int,
constraint fk_tag foreign key (tag_id) references tbl_tag(id</span>),
 /*Khóa ngoại bài post*/
post_id int ,
constraint fk_post foreign key(post_id) references tbl_post(id));
drop table tbl_comment;

/*Tạo bảng tag*/
create table tbl_tag(
id int primary key,
user_id int not null,
 comment_id int not null
);
drop table
tbl_tag;
Advertisements