Tải bản đầy đủ (.doc) (38 trang)

Đồ án website tin tức

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.62 MB, 38 trang )

LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các thầy cô của
trường Đại học Giao Thông Vận Tải Hà Nội, đặc biệt là các thầy cô khoa Công
Nghệ Thông Tin của trường đã tạo điều kiện cho em thực tập ở khoa để có nhiều
thời gian cho khóa luận tốt nghiệp. Và em cũng xin chân thành cám ơn thầy Đoàn
Minh Phương trong bộ môn Mạng máy tính và Truyền thông, trường Đại học Công
Nghệ, ĐHQGHN và cô Đỗ Thanh Thủy bộ môn Mạng và Hệ thống thông tin,
trường Đại học Giao Thông Vận Tải đã nhiệt tình hướng dẫn hướng dẫn em hoàn
thành tốt khóa luận.
Trong quá trình thực tập, cũng như là trong quá trình làm bài báo cáo tốt
nghiệp, khó tránh khỏi sai sót, rất mong các Thầy, Cô bỏ qua. Đồng thời do trình
độ lý luận cũng như kinh nghiệm thực tiễn còn hạn chế nên bài báo cáo không thể
tránh khỏi những thiếu sót, em rất mong nhận được ý kiến đóng góp Thầy, Cô để
em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn bài báo cáo tốt
nghiệp sắp tới.
Em xin chân thành cảm ơn!
MỤC LỤC
1
SVTH:Đoàn Như Chung
PHÂN TÍCH VÀ LỰA CHỌN CÔNG NGHỆ 4
PHÂN TÍCH THIẾT KẾ CƠ SỞ DỮ LIỆU 12
XÂY DỰNG WEBSITE 27
KẾT LUẬN 37
TÀI LIỆU THAM KHẢO 38
2
SVTH:Đoàn Như Chung
MỞ ĐẦU
rong sự phát triển nhanh như vũ bão của xã hội công nghệ thông tin hiện
nay, số lượng thông tin ngày càng nhiều và trở nên quá tải đối với tất cả
chúng ta khiến cho việc tìm kiếm trở nên khó khăn và sự chính xác của
thông tin cũng bị ảnh hưởng rất nhiều. Trong khi đó, nhu cầu cập nhật, giải trí và


tìm kiếm thông tin của xã hội ngày càng cao, đặc biệt là đối với thông tin tin tức,
đòi hỏi phải có sự chính xác, nhanh chóng và kịp thời của những thông tin củng là
điều tất yếu và cần thiết nhất .
T
Chính vì nguyên nhân đã nêu trên, em xin chọn đề tài nghiên cứu “Xây Dựng
Website Tin Tức trên nền tảng ngôn ngữ PHP, MySQL và công cụ Dreaweaver”,
nhằm mục đích góp một phần công sức nhỏ bé của mình trong việc chọn lọc và cập
nhật các thông tin giải trí chính xác và nhanh chóng, giúp cho việc tìm kiếm và cập
nhật thông tin của những người có nhu cầu về lĩnh vực tin tức không còn gặp khó
khăn nữa.
Đề tài này được nghiên cứu và xây dựng trong phạm vi nhà trường kết hợp
với các nhu cầu thực tiễn của xã hội. Phương pháp nghiên cứu đề tài là tự nghiên
cứu, thông qua các tài liệu tham khảo trên internet và tài liệu giấy.
3
SVTH:Đoàn Như Chung
PHÂN TÍCH VÀ LỰA CHỌN CÔNG NGHỆ
1.1. Cài đặt Xampp Control panel v3.2.1
Các bạn biết đấy Magento là 1 script đòi hỏi server của bạn phải có cấu
hình cao. Chính vì thế, rất nhiều người đã gặp không ít khó khăn khi cài đặt
Magento. Sau đây mình xin hướng dẫn cụ thể từng bước, để cấu hình lại server
của bạn, cho phép sử dụng Magento Script.
Việc đầu tiên là bạn vào tải xampp-win32-1.6.7-installer.exe
=95510775
(Xampp hiện tại là 1.7.0 nhưng ko hiểu sao bản này ko tương thích với magento)
Bước tiếp theo ta tiến hành cài đặt Xampp chú ý nhấp chọn tất cả các mục con
phía dưới và qua mấy bước Next , Ok là xong.
Để test xem bạn đã cài đặt Xampp thành công chưa? bạn mở trình duyệt lên và
gõ https://127.0.0.1 hoặchttps://localhost enter nếu nó ra 1 trang chủ vậy có
nghĩa là bạn đã cài đặt thành công Xampp, nhấp vào status trên web để kiểm tra
php mysql đã chạy chưa? Nếu vẫn chưa chạy thì bạn vào Start/Program/Apache

Friends/Xampp/XAMPP Control Panel (là cái hình chữ nhật màu vàng nằm ỡ
dưới system tray) kiểm tra xem apche va mysql đang ở chế độ stop hay running.

4
SVTH:Đoàn Như Chung
Đến bước tiếp theo là trong khi cấu hình Xampp ( chú ý trong khi cấu hình edit
các file bạn phải stop các appche va mysql trên Xampp trước nhé)
Yêu cầu bắt buộc 1: webserver phải hỗ trợ .htacess. Nghĩa là Apache của
bạn phải bật mod_rewrite.
Để làm việc này, bạn mở file C:\xampp\apache\conf\httpd.conf bạn có thể
edit file này bằng các phần mềm cơ bản sẵn có của Window như
Notepad,Wordpad hoặc bằng Notepad++. Tìm đến dòng code sau:
Mã: #LoadModule rewrite_module modules/mod_rewrite.so
Bỏ dấu # đi và save lại
Yêu cầu bắt buộc 2: Thiết lập sử dụng các extension của PHP
C:\xampp\apache\bin\php.ini
Ta tìm đến file này, dùng các Notepad++ để edit.
đầu tiên ta tìm đoạn code
Mã:
;extension=php_mcrypt.dll
bỏ dấu ; đi, đoạn code này sẽ cho phép load Extension Mycrypt của PHP
Tiếp theo tìm đến dòng
Mã:
;extension=php_curl.dll
Bỏ dấu ; đi. đoạn code này sẽ cho phép load Extension Curl của PHP.
5
SVTH:Đoàn Như Chung
Tiếp theo tìm đến dòng
Mã:
;extension=php_pdo_mysql.dll

Bỏ dấu ; đi, đoạn code này cho phép load Extension Pdo kết nối với Mysql của
PHP.
Tìm đến đoạn code
Mã:
;extension=php_pdo.dll
Bỏ dấu ; đi, đoạn code này cho phép load Extension Mycrypt của PHP
Tiếp theo tìm đến dòng
;extension=php_pdo.dll
Bỏ dấu ; đi, đoạn code này cho phép load Extension Pdo kết nối với Mysql của
Nếu đoạn code này không có trong file php.ini của bạn, thì bạn phải thêm đoạn
Code này vào bất kì vị trí của file php.ini cũng được
Sau đó save file php.ini lại.
Xong đâu đó thì bạn trở lại vào Start/Programs/Apache Friends/Xampp/XAMPP
Control Panel (là cái hình chữ nhật màu vàng nằm ỡ dưới system tray
Giờ thì ta đã hoàn thành cài đặt và cấu hình Xampp
6
SVTH:Đoàn Như Chung
1.2. Lập trình cơ sở dữ liệu MySQL
a. Kết nối cơ sở dữ liệu
• Mysql_connect(<host>,<username>,<password>);
Host: địa chỉ của máy cài MySQL tên hoặc ip, nếu là máy nội bộ thì
dùng localhosst.
Hầm này trả về một connection hoặc giá trị false nếu không kết nối
được
Ví dụ: $conn=mysql_connect(“localhost” “root”, “”);
b. Chọn CSDL sử dụng
MySQL có thể chứa nhiều CSDL,hàm sau chọn CSDL muốn dùng
• mysql_select_db(TenDatabase, TenKetNoi);
Trong đó:
TenDatabase:tên cơ sở dữ liệu.

TenKetNoi:là biến connection trả về do hàm mysql_connect. Tên kết
nối có thể bỏ qua cũng được.
Chú ý:
Dùng thêm lệnh sau để ấn đỉnh bảng mã utf8.
Mysql_query(“SET NAME ‘utf8’”,$conn);
c. Thực thi câu lệnh truy vấn
• mysql_query(Câu lệnh SQL);
Hàm trả về true nếu câu lệnh truy vấn thực thi thành công (trừ câu
lệnh select).
Hàm trả về 1 recordset (bảng dữ liệu) nếu câu lệnh select được thực
thi thành công.
Hàm trả về false nếu câu lệnh truy vấn không được thực hiện.
Ví dụ:
$sql=mysql_query(select * from list);
$result=mysql_query(“delete from list where list_id=1”);
d. Duyệt recordset
• mysql_fetch_array($TenRecordSet, mode);
7
SVTH:Đoàn Như Chung
Hàm trả về một mảng kết quả chứ thông tin của record hiện hành hoặc
giá trị false nếu record rỗng, đồng thời di chuyển con trỏ sang recorrd
kế.
Mode là một trong những giá trị:
MYSQL_NUM: mảng kết quả gồm các phần tử đánh số theo số.
MYSQL_ASSOC: mảng kết quả gồm các phần tử đánh theo key.
MYSQL_BOTH: các phần tử của mảng kết quả gấp đôi. Các phần tử
đầu theo số, các phần tử sau theo key.
• $row=mysql_fetch_row($TểncordSet);
Hàm trả về 1 mảng kết quả chứa thông tin của record hiện hành hoặc
giá trị false nếu record rỗng, đồng thời di chuyển con trỏ sang record

kế.
Mảng kết quả gồm các phần tử đánh teo chỉ số.
• $row=mysql_fetch_assoc($TencordSet);
Hàm trả về 1 mảng kết quả chứa thông tin của record hiện hành hoặc
giá trị false nếu record rỗng, đồng thời di chuyển con trỏ sang record
kế.
Mảng kết quả gồm các phần tử đánh theo key.
e. Đếm số record trong recordset
• mysql_num_rows($kq);
f. Lấy ID vừa mới cập nhật
Trong 1 bảng, nếu khóa chính được khai báo theo kiểu auto_increament thì
sau khi thêm mới recorrd, có thể lấy giá trị vừa mới cập nhật bằng hàm này. (Lấy
để đưa vào các bảng khác làm khóa ngoại).
Mysql_insert_id();
g. Thông báo lỗi của MYSQL
• Dùng hàm mysql_error();
Ví dụ:
$kq=mysql_query(“delete from tbl_list”) or die(mysql_eror());
h. Nhảy đến 1 record trong recordset
• mysql_data_seek($TenRecorset, ThuTuRecord);
8
SVTH:Đoàn Như Chung
Ví dụ:
mysql_data_seek($rlisst,0);
i. Đóng kết nối
• mysql_close(<TenKetNoi>)
Ví dụ:
Mysql_close($conn);
1.3. Lập trình PHP
a. Giới thiệu

PHP (viết tắt hồi quy “PHP: Hypertext Preprocessor”) là một ngôn ngữ lập
trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng
viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp
với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các
ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời
gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã
nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus
Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các
mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên
mạng. Ông đã đặt tên cho bộ mã kịch bản này là ‘Personal Home Page Tools’.
* Tại sao nên dùng PHP?
PHP được sử dụng rộng rãi, miễn phí, cấu hình nhanh chóng, nhỏ gọn.
PHP có khả năng đạt hiệu suất cao trong làm việc.
PHP có tính khả chuyển, một ứng dụng dù được phát triển trên Windows vẫn
có thể chạy bình thường trên UNIX mà không gặp bất kỳ vấn đề nào đáng kể.
PHP dễ sử dụng. Như một câu nói nổi tiếng: Simple Is The Best!!
PHP là một dự án mã nguồn mở. Ngôn ngữ này được phát triển bởi một đội
ngũ những người tình nguyện trên toàn cầu.
* Tôi có thể tham khảo về PHP ở đâu?
Hiện tại có rất nhiều trang web hoặc tổ chức hướng dẫn về PHP, tuy nhiên có
2 trang web mà chúng tôi khuyến khích bạn nên tìm hiểu, đó là và
/>9
SVTH:Đoàn Như Chung
b. Một số lệnh php
Xử lý dữ liệu trên from:
• Đối tưởng $_GET, $_POST
$_GET, $_POST là mảng có sẵn trong PHP để chứ dữ liệu gửi lên từ
from. Cả hai là mảng dùng key. Key là trrn của các đối tượng trong
from

$_GET là đối tượng chứ dữ liệu gửi lên từ from dùng method là Get
$_Post là đối tượng chứ dữ liệu gửi lên từ from dùng method là Post
• Cách lấy giá trị từ from
$_GET[“Ten”]
$_POST[“Ten”]
Giới thiệu về http header:
http header là cấc thông tin điều khiển nằm trong các http request,
http response. Chứa các chỉ thị báo cáo cho trình duyệt/sserver biết cách xử lý
thông tin. Ví dụ: trình duyệt chuyển qua trang khác, trình duyệt đừng hiện
file.php, trình duyệt đừng lưu trang vào cache
• Redirection (chuyển hướng)
- Dùng để chuyển sang trang web khác.
- Cú pháp: header(“localhost:url”);
- Lệnh này phải dùng trên tất cả các mã lệnh html
• Content-type
- Dùng để báo cho browser biết kiểu dữ liệu mà webserver đang trả
về cho browwder.
- Cú pháp:header(‘Content-type:?MimiType’);
- Lệnh này phải dùng trên tất cả các mã lệnh html
- Một số kiểu Mimtype (xem thêm file mimetype.html)
Cookies
• Giới thiệu
- Cookie dùng để lưu những thông tin về user
- Cookie được lưu trong máy clien, trong vùng do browser quản lý
- Không dùng cookie để lưu nhưng thông tin quan trọng vì không đảm
bảo browser đều cho phép ghi cookie mà dùng cookie cho mục đích
tiện ích mà thôi
• Tạo cookie
10
SVTH:Đoàn Như Chung

- setcookie(“TenCookie”,giá trị[Thời điểm quá hạn]);
- Nếu không chỉ định thời gian thì cooki sẽ lưu trong bộ nhớ. Và sẽ
mất khi user đóng browser.
- Nếu thời điểm quá hạn là 1 thời điểm trong quá khứ thì browser sẽ
xóa cookie
• Sử dụng cookie
- $_COOKIE[“Ten”];
Session
• Giới thiệu
- Là đối tượng chứa thong tin user trên server.
- Mỗi user có 1 sesion riêng.
- Cấu trúc sesion của mỗi user là giống nhau (Chỉ khác giá trị các
biến).
- $_SESSION là dãy toàn cục có sẵn trong php, dùng để chứa các biến
session. Do đó dữ liệu trong session có thể được truy xuất từ mọi trang
php trong site.
• Khai báo và sử dụng
- $_SESSION[“TenBien”];
- Trang php nào có dùng sessiom thì phải có hàm
<?php sessin_start(); ?> Hàm này phải nằm trên tất cả mã lệnh html
11
SVTH:Đoàn Như Chung
PHÂN TÍCH THIẾT KẾ CƠ SỞ DỮ LIỆU
1.4. Giới thiệu về website tin tức
Ngày nay, vai trò của các trang thông tin điện tử trực tuyến càng trở nên
quan trọng. Khác với báo chí truyền thông có giới hạn thời gian cập nhập tin tức,
các tờ báo trực tuyến đã cung cấp được sự tiện lợi trong việc cập nhật và phát hành
thông tin. Về phía người dùng, họ có thể xem thông tin mọi lúc mọi nơi. Về phía
những người cung cấp thông tin, các nhà báo, họ có thể dễ dàng cập nhật những tin
tức mới nhất, thời sự nhất. Do đó việc sử dụng các trang thông tin trực tuyến luôn

là điều cần thiết hiện nay nhằm đáp ứng nhu cầu cập nhật thông tin của mỗi người.
Tin tức là những việc đã xãy ra dù tốt dù xấu , để giúp con người biết những
chuyện xung quanh và trên thế giới. Ngày nay nhờ thông tin truyền thông nhanh,
cho nên bất cứ chuyện gì xảy ra ở đâu trên thế giới thì ta đều biết ngay, nhờ đó mà
có thể học được nhiều cái hay cũng như tránh được những chuyện xấu xảy ra, như
các trận sóng thần, bảo táp, núi lửa sắp đến, các chất độc hại trong thức ăn…giúp
con người biết trước mà tránh khỏi các nguy hiểm sắp đến.
Tin tức vô cùng quan trọng nó cho người ta tri thức và là cơ sở để người ta
tiến hành mọi việc lớn nhỏ. Khi có internet, tin tức càng quan trọng vì tốc độ lan
truyền nhanh ảnh hưởng ngay tức thì trên diện rộng.
1.5. Yêu cầu Website Tin Tức
a. Về giao diện
Chương trình phải hoàn toàn bằng tiếng Việt
Giao diện dễ hiểu, thân thiện với người dùng.
Dễ sử dụng, những người không biết tin học có thể sử dụng
được chương trình
b. Về chức năng
Thành viên:
Mỗi thành viên có tài khoản khi đăng nhập vào có thể theo dõi
dự án đang làm và dự án đã làm.
Xem các thông tin chung trên trang web, có thể cập nhật bài
mới.
12
SVTH:Đoàn Như Chung
Quản Trị:
Người quản trị có thể đăng nhập tài khoản, thay đổi nội dung
của trang web, theo dõi các bài viết.
Có tất cả các chức năng thêm, xóa, sửa thay đổi toàn bộ giao
diện của trang web.
1.6. Phân tích các chức năng của website

Nhìn một cách tĩnh về hệ thống chúng ta xác định được các đối
tượng dữ liệu sau:
 Tin tức:
Mô tả tin (tiêu đề , tóm tắt, nội dung, ý kiến độc giả, yêu thích, tác
giả, ngày đăng tin, số lần xem tin, ảnh tiêu đề, tin liên quan, bình chọn,
mục tin, tags, nguồn tin, ngày cập nhật, người cập nhật, người duyệt đăng
tin, thời điểm hiện tin, thời điểm duyệt tin)
 Ý kiến độc giả:
Mô tả (độc giả, mã, ý kiến, số lượt thích, theo tin nào, theo ý kiến
nào, thời gian đăng)
 Độc giả:
Mô tả( Tên, mã, email, điện thoại)
 Yêu thích:
Mô tả (độc giả, mã, ý kiến, số lượt thích, theo tin nào, ý kiến nào)
 Bình chọn:
Mô tả (câu hỏi, biểu quyết, kết quả, số phiếu biểu quyết)
 Mục tin:
Mô tả (danh muc cha, danh muc con, vị trí, thứ tự, người cập nhật,
người duyệt, thời điểm hiển thị)
 Người dùng:
Mô tả (mã, tên, địa chỉ, số điện thoại, email)
13
SVTH:Đoàn Như Chung
Nhìn một cách động (xét trên các hoạt động ) hệ thống bao gồm các
hoạt động sau:
 Nghiệp vụ quản lý tin:
Người cập nhật sẽ nhập tin mới vào khi đó tin sẽ có trong hệ thống
và chưa được hiển thị ra bên ngoài cho người đọc.
Người duyệt đăng sẽ đọc tin trong hệ thống nếu thấy nó có thể hiện
ra thì hiện ra tại thời điểm mong muốn.

Tin được hiện ra và sắp xếp theo thời điểm do người duyệt quyết
định
Bất kì tin nào sau khi cập nhật cũng chuyển về trạng thái chưa được đăng
Tiêu đề của tin sẽ không để trống, giới hạn chữ cho tiêu đề
Tóm tắt tin cũng không được để trống, cũng giới hạn chữ để hiển thị ra
bên ngoài
 Nghiệp vụ quản lý ý kiến độc giả:
Ý kiến hiển thị theo số lượt thích hoặc theo thời gian đăng
 Nghiệp vụ quản lý độc giả:
Khi độc giả đăng ký thông tin thì những thống tin của độc giả sẽ lưu vào
hệ thống
Nếu đăng ký thành công thì độc giả đăng nhập vào và nêu ý kiến của
mình về bài viết
 Nhiệp vụ quản lý yêu thích của độc giả:
Số lượt thích hiển thị theo ý kiến của độc giả
 Nghiệp vụ quản lý bình chọn:
Câu hỏi hiện thị theo bài viết
 Nghiệp vụ quản lý danh mục:
Người cập nhật sẽ nhập danh mục tin mới vào khi đó danh mục sẽ có
trong hệ thống và chưa được hiển thị ra bên ngoài cho người đọc.
Người duyệt đăng sẽ kiểm tra trong hệ thống nếu thấy nó có thể hiện ra
thì hiện ra theo thời điểm mong muốn
Danh mục tin được hiện ra và sắp xếp theo thứ tự do người duyệt quyết
định
 Nghiệp vụ quản lý người dùng :
Dành cho quản trị người quyền quyết định hoạt động quản trị viên
Quản lý thông tin cá nhân của các quản trị viên
Tạo lập các nhóm quyền khác nhau cho quản trị viên
a. Sơ đồ phân giã chức năng
- Hệ thống website tin tức bao gồm 3 nhóm người dùng:

14
SVTH:Đoàn Như Chung
+ Admin
+ Manager
+ Thành viên
- Mỗi nhóm người dùng sẽ có những quyền và chức năng nhất định
Hình 2.1: Biểu đồ phân rã chức năng BFD
+ Biều đồ phân rã chức năng của người dùng Admin:
Admin, Manager, là người có quyền cao nhất trong hệ thống, họ có thể thực
hiện các chức năng: đăng nhập, quản lý tin tức, quản lý người dùng, quản lý nhóm
người dùng, quản lý danh mục, quản lý bình luận tin tức, quản lý bình chọn . Đối
với quản lý người dùng, người dùng admin có quyền và chức năng xem chi tiết
thông tin cá nhân của họ và các manager, thành viên; thêm người dùng manager và
thành viên; chỉnh sửa thông tin cá nhân của họ và các manager, thành viên; xóa
người dùng manager, thành viên.
Đối với quản lý người dùng, người dùng manager cũng có thể xem chi tiết
thông tin cá nhân của họ và admin, thành viên; chỉ chỉnh sửa được thông tin cá
nhân của họ và các thành viên; chỉ xóa được người dùng là thành viên; tìm kiếm
người dùng.
15
SVTH:Đoàn Như Chung
Hình 2.2: Biểu đồ phân rã chức năng BFD người dùng admin
+ Biều đồ phân rã chức năng của người dùng là thành viên:
Thành viên là nhóm người dùng chính đặc biệt quan trọng với hệ thống
website, tương tác trực tiếp với hệ thống website, góp phần đưa nội dung website
trở lên phong phú, sinh động. Người dùng là thành viên có các chức năng: đăng
nhập, đăng ký thành viên, quản lý thông tin cá nhân.
16
SVTH:Đoàn Như Chung


Hình 2.4: Biểu đồ phân rã chức năng BFD người dùng là thành viên
1.7. Thiết kế cơ sở dữ liệu
a. Xác định các thực thể, thuộc tính
Xác định các thực thể từ các đối tượng đã được xác định trong 2.3, ta xác
định được các thực thể sau đây:
Tin tức
(news_id, title, descriptio, content, images_title, views, date_poste, date_show,
tags, hidden, comment, like, list_id)
 Bình luận tin
(comment_id,news_id, user_id, comment_date, content, parent_comment_id)
17
SVTH:Đoàn Như Chung
 Yêu thích tin
(news_id, user_id, like_date)
 Người dùng
(user_id, username, password, Address, Phone, Email, date, birthday, Active,
group_id)
 Danh mục
(list_id, name)
 Bình chọn
(voted_id, question, number, hidden, order, news_id)
 Đáp án
(plan_id, results, numbe, hidden, order, voted_id)
b. Mô tả các mối kết hợp
Thể hiện sự quan hệ ngữ nghĩa giữa những thực thể ở ít nhất 2 loại thực thể
khác nhau
 Tintuc và Danhmục
(1,n) (1,1)
Mô tả:
• Một danh mục có thể có 1 hoặc nhiều tin tức

• Một tin chỉ thuộc môt danh mục
 Tintuc và YkienBD
(1,n) (1,1)
Mô tả:
• Một tin tức có thể có 1 hoặc nhiều ý kiến độc giả
• Một ý kiến độc giả chỉ thuộc môt tin tức
 Tintuc và like
(1,n) (1,1)
18
SVTH:Đoàn Như Chung
Danhmuc


C
ó
Tintuc
Tintuc

like
Tintuc


C
ó
YKienBD
Mô tả:
• Một tin tức có thể có 1 hoặc nhiều yêu thích
• Một yêu thích chỉ thuộc môt tin tức
 Tintuc và BinhChon
(1,n) (1,1)


Mô tả:
• Một tin tức có thể có 1 hoặc nhiều bình chọn
• Một bình chọn chỉ thuộc môt tin tức
 BinhChon và PhuongAn
( 1,n) (1,1)
Mô tả:
• Một bình chọn có thể có 1 hoặc nhiều phương án
• Một phươn án chỉ thuộc môt bình chọn
 NguoiDung và like
(1,n) (1,1)
Mô tả:
• Một người dùng có thể có 1 hoặc nhiều like
• Một likechỉ thuộc môt người dùng
 NguoiDung và YKienBD
(1,n) (1,1)

Mô tả:
• Một người dùng có thể có 1 hoặc nhiều ý kiến bạn đọc
• Một ý kiến bạn đọc chỉ thuộc môt người dùng
19
SVTH:Đoàn Như Chung
Tintuc


C
ó
Binhchon
BinhChon



C
ó
PhuongAn
NguoiDung


C
ó
like
NguoiDung


C
ó
YKienBD
c. Các bảng dữ liệu vật lý
tbl_news
Tên trường Kiểu Kích thước Ghi chú
news_id Int 11 Mã tin. Mỗi tin có một mã duy
nhất. Đây là khóa chính
Title Varchar 255 Tiêu đề tin
Description Text Mô tả về tin
Content Text 11 Nội dung
images_title Nvarchar 255 Ảnh tiêu đề
Views Int 11 Số người xem tin
date_posted Datetime Ngày đăng tin
date_show Datetime Ngày hiện tin
Tags Nvarchar 11 Keyword của tin
Hidden Nvarchar 255 Ẩn hiện

Comment Int 255 Lượt comment tin
Like Int 255 Lượt thích tin
list_id Mã danh mục
tbl_users
Tên trường Kiểu Kích thước Ghi chú
user_id Int 11 Mã người dùng. Mỗi người dùng có
một mã duy nhất. Đây là khóa chính
username Varchar 45 Tên đăng nhập
password Varchar 45 Mật khẩu
Address Varchar 255 Địa chỉ
Phone Varchar 20 Điện thoại
Email Varchar 50 Email người dùng
date Time Ngày đăng ký
birthday time Ngày sinh
Active Tinyint 1 Trạng thái của người dùng
group_id Int 11 Mã nhóm của người dùng
tbl_group
Tên trường Kiểu Kích thước Ghi chú
group_id Int 11 Mã nhóm. Mỗi nhóm có một mã
duy nhất. Đây là khóa chính
group_name Varchar 45 Tên nhóm (gồm Admin, Manager,
Member)
tbl_comment_news
20
SVTH:Đoàn Như Chung
Tên trường Kiểu Kích thước Ghi chú
comment_id Int 11 Mã comment
news_id Int 11 Mã tin tức
user_id Int 11 Mã người dùng comment tin tức
comment_d

ate
Datetime Thời điểm comment tin tức
Content Text Nội dung comment
parent_com
ment_id
Int 11 Lưu ID của bình luận mà bạn trả
lời(Comment_id =0 là do nó ko trả
lời ai mà là bình luận trực
tiếp,Comment=1 đến Comment_id=n
để biết nó là con của bình luận nào.
tbl_like
Tên
trường
Kiểu Kích thước Ghi chú
news_id Int 11 Mã loại tin
user_id Int 11 Mã người dùng yêu thích ảnh
like_date Datetime Thời điểm yêu thích tin tức
tbl_list(danh mục)
Tên trường Kiểu Kích thước Ghi chú
ID Int 11 Mã danh mục
Name Nvarchar 255 Tên danh mục
order Int 11 Thứ tự
hidden Nvarchar 1 ẩn hiện
parent_list_Id
Int 11 Lưu ID của danh muc(list_Id=0 là
danh mục cha,list_Id=1 đến list_Id=n
là danh mục con)
tbl_voted(bình chọn)
Tên
trường

Kiểu Kích thước Ghi chú
voted_id Int 11 Mã số câu hỏi để bình chọn
question Nvarchar 255 Mô tả chi tiết câu hỏi
number Int 11 Số lần bình chọn cho câu hỏi
hidden Nvarchar 1 ẩn hiện
order int 11 Thứ tự
news_id Int 11 Mã tin tức
tbl_plan(phươngán)
Tên Kiểu Kích thước Ghi chú
21
SVTH:Đoàn Như Chung
trường
plan_id Int 11 Mã phương án chọn lựa câu hỏi trả lời
results Nvarchar 255 Kết quả
number Int 11 Đếm số lần người dùng chọn
hidden Nvarchar 1 ẩn hiện
order int 11 Thứ tự
voted_id Int 11 Kết nối tới bảng bình chọn
d. Mô hình dữ liệu quan hệ (Relational Data Diagram)
1.8. Mô tả các ràng buộc toàn vẹn và bảng tầm ảnh hưởng
Ràng buộc toàn vẹn là những điều kiện ràng buộc giá trị trên một thuộc
tính hoặc giữa các thuộc tính, các bộ trong 1 hay nhiều quan hệ
Các ràng buộc này là bất biến, thỏa mãn ở bất kỳ thời điểm nào.
2.5.1 Ràng buộc toàn vẹn có bối cảnh là 1 quan hệ
a. Ràng buộc toàn vẹn liên thuộc tính
• Ràng buộc:
o Mô tả: Ngày sinh nhỏ hơn ngày đăng ký thành viên
22
SVTH:Đoàn Như Chung
o Bối cảnh: tbl_users

o Điều kiện: q1 tbl_users
q1.birthday < q1.date
o Tầm ảnh hưởng:
Quan hệ Thêm Xóa Sửa
tbl_users + - +[birthday,date]
b. Ràng buộc toàn vẹn liên bộ
• Ràng buộc:
o Mô tả: Mỗi danh mục phải có một mã số phân biệt với
danh mục khác
o Bối cảnh: tbl_list
o Điều kiện: q1 tbl_list, q2 tbl_list
q1.list_id <> q2.list_id
o Tầm ảnh hưởng:
Quan hệ Thêm Xóa Sửa
tbl_list + - +[list_id]
• Ràng buộc:
o Mô tả: Mỗi tin tức phải có một mã số phân biệt với tin tức
khác
o Bối cảnh: tbl_news
o Điều kiện: q1 tbl_news, q2 tbl_news
q1.news_id <> q2.news_id
o Tầm ảnh hưởng:
Quan hệ Thêm Xóa Sửa
tbl_news + - +[news_id]
• Ràng buộc:
o Mô tả: Mỗi ý kiến độc giả phải có một mã số phân biệt với
ý kiến độc giả khác
23
SVTH:Đoàn Như Chung
o Bối cảnh: tbl_comment_news

o Điều kiện:
q1 tbl_comment_news, q2 tbl_comment_news
q1.comment_id <> q2.comment_id
o Tầm ảnh hưởng:
Quan hệ Thêm Xóa Sửa
tbl_comment_news + - +[comment_id]
• Ràng buộc:
o Mô tả: Mỗi bình chọn phải có một mã số phân biệt với bình
chọn khác
o Bối cảnh: tbl_voted
o Điều kiện: q1 tbl_voted, q2 tbl_voted
q1.voted_id <> q2.voted_id
o Tầm ảnh hưởng:
Quan hệ Thêm Xóa Sửa
tbl_voted + - +[voted_id]
• Ràng buộc:
o Mô tả: Mỗi đáp án phải có một mã số phân biệt với đáp án
khác
o Bối cảnh: tbl_plan
o Điều kiện: q1 tbl_plan, q2 tbl_plan
q1.plan_id <> q2.plan_id
o Tầm ảnh hưởng:
Quan hệ Thêm Xóa Sửa
tbl_plan + - +[plan_id]
• Ràng buộc:
24
SVTH:Đoàn Như Chung
o Mô tả: Mỗi người dùng phải có một mã số phân biệt với
người dùng khác
o Bối cảnh: tbl_users

o Điều kiện: q1 tbl_users, q2 tbl_users
q1.user_id <> q2.user_id
o Tầm ảnh hưởng:
Quan hệ Thêm Xóa Sửa
tbl_users + - +[user_id]
• Ràng buộc:
o Mô tả: Mỗi tác giả phải có một mã số phân biệt với tác giả
khác
o Bối cảnh: tbl_creator
o Điều kiện: q1 tbl_creator, q2 tbl_creator
q1.creator_id <> q2.creator_id
o Tầm ảnh hưởng:
Quan hệ Thêm Xóa Sửa
tbl_creator + - +[creator_id]
2.5.2 Ràng buộc toàn vẹn có bối cảnh là nhiều quan hệ
a.Ràng buộc toàn vẹn liên thuộc tính
Ràng buộc:
o Mô tả: list_id là khóa ngoại của tbl_news được tham chiếu
từ tbl_list
o Bối cảnh: tbl_news, tbl_list
o Điều kiện: tbl_news[list_id] tbl_list[list_id]
o Tầm ảnh hưởng:
Quan hệ Thêm Xóa Sửa
tbl_news + - +[list_id]
25
SVTH:Đoàn Như Chung

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×