Tài liệu Đồ án Xây dựng diễn đàn trên website: ĐỒ ÁN:
XÂY DỰNG DIỄN ĐÀN
TRÊN WEBSITE
Chương 1
ĐẶT VẤN ĐỀ
I. GIỚI THIỆU CHUNG
Nếu ai đã từng sử dụng Internet chắc sẽ không ít lần nghe hoặc sử dụng dịch vụ
nhóm thảo luận trên Internet (NewsGroup), đây là dịch vụ khá phổ biến hiện nay. Khi ta
gặp một vấn đề thắc mắc, hoặc đang tìm kiếm một thông tin gì đó, thì NewsGroup sẽ là
người trợ giúp đắc lực cho chúng ta. Dịch vụ này cho phép người dùng gửi lên mạng
Internet những câu hỏi hoặc những thắc mắc của mình, sau đó nếu một người nào đó, ở
đâu đó trên thế giới cũng tham gia vào nhóm thảo luận đó nếu họ đọc được được mẩu tin
của chúng ta và biết về thông tin về vấn đề đó họ sẽ trả lời cho ta và ngược lại ta cũng có
thể trở thành một người trả lời. Thật là thú vị khi được mọi người trên toàn cầu giúp ta
giải quyết một vấn đề.
Ngày nay các NewsGroup thường được tích hợp luôn trên web nên tạo điều kiện
thuận lợi hơn cho người sử dụng và người ta gọi đó là các Diễn đàn trên web (web
forum).
Trên mạng ...
90 trang |
Chia sẻ: haohao | Lượt xem: 1513 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Xây dựng diễn đàn trên website, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐỒ ÁN:
XÂY DỰNG DIỄN ĐÀN
TRÊN WEBSITE
Chương 1
ĐẶT VẤN ĐỀ
I. GIỚI THIỆU CHUNG
Nếu ai đã từng sử dụng Internet chắc sẽ không ít lần nghe hoặc sử dụng dịch vụ
nhóm thảo luận trên Internet (NewsGroup), đây là dịch vụ khá phổ biến hiện nay. Khi ta
gặp một vấn đề thắc mắc, hoặc đang tìm kiếm một thông tin gì đó, thì NewsGroup sẽ là
người trợ giúp đắc lực cho chúng ta. Dịch vụ này cho phép người dùng gửi lên mạng
Internet những câu hỏi hoặc những thắc mắc của mình, sau đó nếu một người nào đó, ở
đâu đó trên thế giới cũng tham gia vào nhóm thảo luận đó nếu họ đọc được được mẩu tin
của chúng ta và biết về thông tin về vấn đề đó họ sẽ trả lời cho ta và ngược lại ta cũng có
thể trở thành một người trả lời. Thật là thú vị khi được mọi người trên toàn cầu giúp ta
giải quyết một vấn đề.
Ngày nay các NewsGroup thường được tích hợp luôn trên web nên tạo điều kiện
thuận lợi hơn cho người sử dụng và người ta gọi đó là các Diễn đàn trên web (web
forum).
Trên mạng Internet hiện đang có rất nhiều diễn đàn nói về nhiều chủ đề khác nhau.
Ví dụ trang www.deja.com đây là trang web nổi tiếng về vấn đề trao đổi thông tin giữa
mọi người qua Internet. Như ta thấy trên hình, người ta chia ra rất nhiều chủ đề như:
copm. (computer): khoa học về máy tính, rec. (recreation): hội thảo về giải trí nghệ
thuật...
Tác dụng lớn nhất của Diễn đàn trên web là mọi người khi tham gia vào mạng có thể đặt
ra một vấn đề gì đó theo một chủ đề nhất định để có thể nhận được câu trả lời của nhiều
người trên toàn thế giới. Để có thể thấy được lợi ích về tính quảng bá và khối lượng thông
tin, kiến thức đồ sộ trên diễn đàn ta có thể so sánh dịch vụ này với dịch vụ E-mail như
sau: Nếu như nói thông tin trao đổi qua mail chỉ là quan hệ 1-1 , tức là chỉ có một người
gửi và chỉ có một người, hoặc một nhóm người nhận thư. Trong khi đó Diễn đàn trên web
lại có quan hệ 1-n, tức là một người hỏi có nhiều người trả lời. Như vậy lợi ích mà Diễn
đàn trên web đem lại cho người sử dụng là không nhỏ.
Ngày nay Diễn đàn trên Web được ứng dụng rất nhiều nơi, ví dụ trong một trường
đại học, diễn đàn sẽ giúp đỡ các sinh viên trao đổi thảo luận với nhau qua mạng, hay trong
mạng nội bộ của một cơ quan...
Xuất phát từ lợi ích mà diễn đàn đem lại, với mong muốn tạo ra một ứng dụng trên
mạng, giúp mọi người trao đổi thông tin với nhau nên em chọn đề tài: “Xây dựng diễn
đàn trên web - Web Forum”.
Hiện nay Khoa Công Nghệ Thông Tin - Điện tử Viễn thông chúng ta đang có một
mạng cục bộ hiện đại, tuy nhiên em chưa thấy có nơi cho phép sinh viên truy nhập, tìm
hiểu những vấn đề phục vụ cho công việc học tập hay giải trí. Chương trình Diễn đàn trên
Web nếu được sử dụng trên mạng của trường mong sẽ góp một phần vào việc trao đổi
thông tin của các bạn sinh viên, đem lại một hình thức trao đổi thông tin mới và chắc chắn
sẽ hiệu quả.
II. HƯỚNG XÂY DỰNG CHƯƠNG TRÌNH
Khi nói đến diễn đàn mọi người liên tưởng đến ngay đến các cuộc bàn luận, phân
tích về một vấn đề gì đó của một nhóm người nào đó. Trong diễn đàn mọi người đưa ra ý
kiến của mình, các câu hỏi của mình để mọi người tham gia phân tích tìm câu trả lời, đó
là diễn đàn trong cuộc sống hằng ngày chỉ diễn ra trong nội bộ một nhóm người.
Ngày nay, với sự phát triển của mạng Internet ý tưởng đưa các cuộc nói chuyện, bàn
luận xung quanh một vấn đề gì đó cũng được đưa lên mạng. Như vậy, khi tham gia diễn
đàn trên mạng các thành viên không cần phải tập trung tại một địa điểm nào đó mà chỉ
cần ngồi tại nhà cùng với chiếc máy tính và tham gia vào mạng là có thể tham gia được
diễn đàn. ưu điểm của phương pháp này là ở chổ sẽ có nhiều người và rất nhiều nơi trên
thế giới tham gia vào diễn đàn và vấn đề đặt ra trên diễn đàn chắc chắn sẽ mau chóng
được giải thích.
Diễn đàn trên web là một chương trình ứng dụng được xây dựng dưới dạng các trang
web. Với web, mọi người sử dụng có thể truy xuất đến các trang ứng dụng này để trao đổi
thông tin với người khác.
Do chương trình xây dựng trên web có trao đổi thông tin giữa các người sử dụng với
nhau nên các trang web của ứng dụng nhất thiết phải là các trang web có nội dung động.
Trong những năm gần đây để xây dựng các trang web động người ta thường hay sử dụng
các ngôn ngữ như: VBScript, Jscript, ASP. Ngoài ra các trang web cho phép người sử
dụng trao đổi thông tin với nhau nên phải có một cơ sở dữ liệu để lưu trữ các thông tin mà
người sử dụng trao đổi với nhau.
CHƯƠNG 2
CÁC CÔNG CỤ TRỢ GIÚP
Phần này giới thiệu về các thành phần cần thiết để ứng dụng có thể chạy được và các
công cụ giúp cho việc lập trình.
I. YÊU CẦU VỀ MÔI TRƯỜNG LÀM VIỆC CỦA ỨNG DỤNG
Diễn đàn trên Web là một chương trình ứng dụng được viết trên giao diện web và
người sử dụng có thể ngồi tại máy con để truy xuất các trang web của ứng dụng do vậy
yêu cầu đầu tiên là phải có một máy chủ chạy phần mềm web server (thông thường là IIS
(Internet Information Server chạy trên WinNT hay Personal Web Server chạy trên
Win98).
Thứ hai, do đây là trang web có tương tác với cơ sở dữ liệu cần phải có MS Access
hay SQL Server. Thứ ba, phải có một chuẩn kết nối giữa cơ sở dữ liệu để đưa dữ liệu từ
các người sử dụng vào cơ sở dữ liệu cũng như truy xuất các dữ liệu từ các bảng của cơ sở
dữ liệu.
Khi xây dựng chương trình tuy có nhiều cách lựa chọn về môi trường làm việc của
ứng dụng nhưng em chọn môi trường làm việc cho ứng dụng gồm:
- PWS (Personal Web Server)
- Cơ sở dữ liệu: Microsoft Access 98
- Chuẩn kết nối: ODBC
Web Server là một chương trình ứng dụng. Trên web server chứa những site mà các
máy con có thể truy xuất đến các site này. Thông thường trên máy có hệ điều hành
Windows 98 thì web server là Personal Web Server, trên máy WindowsNT Server thì
dùng phần mềm IIS 4.0.
Về cơ sở dữ liệu, các ứng dụng thực tế hiện nay người ta thường hay sử dụng SQL
Server. Tuy nhiên trong quá trình xây dựng chương trình không có một máy tính có cấu
hình đủ mạnh để cài đặt SQL Server. Hơn nữa trong chương trình ta chỉ dùng cơ sở dữ
liệu để lưu trữ thông tin vào các bảng nên việc chọn SQL Server hay MS Access là không
quan trọng.
Về chuẩn ODBC, ODBC là viết tắt của Open Database Connectivity (hệ thống kết
nối CSDL mở). ODBC được coi như là một giao thức chuẩn để giao tiếp giữa chương
trình ứng dụng với hệ thống các bảng của cơ sở dữ liệu. Ví dụ khi ta viết các chương trình
ứng dụng có truy xuất cơ sở dữ liệu thông qua ODBC thì ODBC nhận những yêu cầu từ
chương trình ứng dụng và chuyển thành ngôn ngữ database engine để truy xuất cơ sở dữ
liệu.
Và để có thể hình dung được khái quát cách chương trình làm việc cũng như cách
trao đổi dữ liệu từ người sử dụng với cơ sở dữ liệu như thế nào ta xem hình 2
Theo như hình vẽ trên, người sử dụng có thông qua môi trường mạng Internet hay
Intranet có thể truy xuất các trang của ứng dụng trên web server (máy chủ). Khi có thao
tác với cơ sở dữ liệu như: gửi một bài, tìm kiếm thông tin về một bài nào đó... thì các yêu
cầu này sẽ được web server thực hiện. Web server sẽ thực thi các đoạn mã lệnh để truy
xuất được các bảng trong cơ sở dữ liệu thông quan ODBC, tuỳ theo yêu cầu của người sử
Máy chủ
Máy con
CSDL
ODBC Internet
Intranet
Hình 2: Yêu cầu môi trường làm việc của ứng dụng
dụng web server có thể đưa dữ liệu vào cơ sở dữ liệu hoặc truy xuất các thông tin từ cơ sở
dữ liệu và cuối cùng trả về cho người sử dụng kết quả mà họ yêu cầu.
Trên là một số điều cơ bản về môi trường và cách thức hoạt động của ứng dụng.
II. CÁC CÔNG CỤ TRỢ GIÚP TRONG LẬP TRÌNH
1. Jscript (javascript):
Jscript được phát triển bởi Microsoft nhằn làm tăng tính năng cho trình duyệt
Internet Explorer.
Trước đây các trang web được viết bằng HTML có khả năng tương tác với người sử
dụng rất kém thì nay với Jscript chúng ta có thể tạo ra được những trang web đầy sống
động và khả năng tương tác rất mạnh.
Nếu ai đã từng lập trình với Java thì việc học Jscript sẽ rất dễ dàng. Mặt dù chức
năng của Jscript không mạnh bằng các ngôn ngữ lập trình như Java hay C++ nhưng cũng
đủ để người lập trình viết những chương trình nhỏ cho các trang web. Trong thực tế người
ta thường hay sử dụng Jscript để tạo ra những trang web tương tác với người dùng như:
các form nhập số liệu, các nút bấm trên trang web, hoặc những hình ảnh chuyển động trên
trang web..., làm cho trang web giống như một chương trình thực thụ.
2. VBScript (visual basic script)
Vbscript cũng do Microsoft phát triển. Cũng như Jscript, Vbscript được chèn vào
trang web để làm tăng thêm tính năng tương tác cho trang web.
Thường Vbsript được dùng để viết những đoạn chương trình tính toán số liệu trên
trang web, hoặc có thể dùng nó để viết những đoạn chương trình trao đổi dữ liệu giữa
trang web và các cơ sở dữ liệu.
Tóm lại, Jscript và Vbscript không phải là phiên bản của bất kỳ một ngôn ngữ nào
mặc dù Jscript thì trông gần giống như Java hay Vbscript thì trông gần giống như Visual
basic. Thêm vào đó Jscript và VBScript không dùng để tạo ra được các ứng dụng độc lập
mà nó phải được chạy kèm vào trong các trang web và các đoạn mã của các ngôn ngữ này
sẽ được dịch và thực thi trên web server hay trên trình duyệt của người sử dụng.
3. ASP (active server page)
Microsoft Active Server Page (ASP) là một môi trường kịch bản trên máy chủ dùng
để tạo ra những ứng dụng Web động và có tương tác. ASP có một tập các đối tượng có
sẵn với nhiều tính năng phong phú, khả năng hỗ trợ VBScript và JScript cùng với một số
thành phần ActiveX khác kèm theo.
- Đặc điểm của ASP
Tạo ra những trang web động có tương tác: ASP có hộ trợ các script như JScript và
Vbscript, bằng cách đưa các script này vào trong trang ASP chúng ta có thể tạo ra những
trang web động có tương tác.
ASP có hỗ trợ các đối tượng được xây dựng sẵn, với các đối tượng này cùng với các
script chúng ta có thể tạo ra những trang web đa năng. Ví dụ chúng ta có thể dùng đối
tượng Request để viết những đoạn chương trình yêu cầu server cung cấp thông tin từ
server.
Ngoài ra ASP còn có những đối tượng khác mà khi dùng người dùng phải định
nghĩa trước khi dùng, các đối tượng này cũng cung cấp cho người lập trình có khả năng
tạo ra được những trang Web hữu ích.
Có thể truy xuất đến cơ sở dữ liệu như MS Access hay SQL server.
- Khả năng của ASP
Với ASP ta có thể tạo được nhiều loại web nào hiện đang có trên Internet. Sau đây ta
có thể liệt kê ra một số khả năng mà ASP có thể làm:
Tạo những hình ảnh quảng cáo động rất sinh động và đẹp mắt trên trang web.
Có thể đưa các thông tin từ các form của HTML lên cơ sở dữ liệu.
Có thể tạo ra có thể hiển thị nội dung khác nhau tuỳ thuộc vào người sử dụng. Có
nghĩa là đối với người sử dụng này sẽ có nội dung hiển thị trên trình duyệt khác với người
sử dụng khác.
Đối với những trình duyệt web khác nhau, version khác nhau (IE hay Netscape) thì
asp có thể có những nội dung hiển thị khác nhau tuỳ thuộc vào khả năng của trình duyệt.
- Các đối tượng của ASP
Nhằm tạo điều kiện cho người lập trình, ASP cung cấp cho người lập trình năm đối
tượng được xây dựng sẵn.
CLIENT SERVER REQUEST OBJECT Cookies
Form
QueryString
ServerVariables
ClientCertificate
RESPONSE OBJECT
Cookies
(properties)
(methods)
SERVER OBJECT
(methods)
APPLICATION OBJECT
(methods)
(properties)
SESSION OBJECT
(methods)
(properties)
Hình 3: Các đối tượng được xây dựng sẵn của ASP
Trong đó:
Session Dùng để lưu trữ những thông tin cần thiết trong phiên làm việc của
user. Những thông tin lưu trữ trong session không bị mất đi khi user
di chuyển qua các trang ứng dụng.
Application Dùng để chia sẻ thông tin giữa các user trong cùng một ứng dụng. Đối
tượng Application thường được dùng để đếm số lần truy cập đến ứng
dụng của user
Request dùng để truy cập những thông tin được chuyển cùng với yêu cầu
HTTP. Những thông tin này gồm các tham số của form khi được
Submit dùng phương thức POST hay GET hay các tham số được ghi
cùng với trang asp trong lời gọi đến trang đó. Dùng đối tượng Request
để chia sẻ thông tin giữa các trang asp trong một ứng dụng. Ngoài ra
Request còn được dùng để lấy giá trị cookie lưu trữ trên máy client
Response gửi thông tin ra user, gồm các thông tin ghi trực tiếp ra browser,
chuyển browser đến một URL khác hoặc thiết lập cookie trên máy
client
Server cung cấp phương tiện truy cập đến những phương thức và thuộc tính
trên server.
- Cách tạo trang ASP
Với một trang HTML có sẵn, ta có thể dễ dàng tạo ra các trang ASP bằng cách thêm
vào các lệnh ASP Script cần thiết và đổi phần mở rộng thành .asp.
- Cách chèn các ASP Script vào trang ASP:
ASP Script phải được đặt giữa ký hiệu hoặc giữa khối
Những lệnh nằm giữa phải sử dụng ngôn ngữ scripting chính thức qui định
cho trang đó. Để chỉ định ngôn ngữ chính thức cho trang ASP, ta dùng chỉ dẫn
ñaët ôû doøng ñaàu tieân cuûa trang ASP. Löu yù, ngôn ngữ
Vbsvript là ngôn ngữ chính thức ngầm định cho trang ASP.
Dùng khối để định nghĩa
các Procedure (Sub hoặc Function) có sử dụng trong trang ASP (các Procedure thường
đặt ở cuối trang).
4. Visual InterDev (visual Internet Development)
Visual InterDev là một phần mềm được phát triển bởi Microsoft. Đây là một phần
mềm có hỗ trợ cho lập trình thiết kế web đặc biệt phần mềm có cho phép người lập trình
có thể nhìn thấy trực tiếp trang web của mình đang thiết kế. Visual InterDev hỗ trợ rất
mạnh cho việc lập trình các trang web có tương tác. Tất cả các đối tượng của ASP đều
được phầm mềm này hỗ trợ.
Do tất cả các đối tượng của ASP được phần mềm này hổ trợ nên việc lấy Visual
Interdev để soạn thảo các trang asp sẽ rất nhanh và ít gặp lỗi.
- Những ưu điểm của phần mềm:
Hỗ trợ mạnh cho người lập trình tạo ra những trang ứng dụng bằng ngôn ngữ HTML
hay các ngôn ngữ mới như DHTML.
Là một công cụ lập trình mạnh cho web, phần mềm có rất nhiều công cụ được xây
dựng sẵn, các đối tượng được xây dựng sẵn trong thư viện. Ngoài ra người lập trình có thể
sử dụng đến các công cụ gỡ rối chương trình, kiểm tra chương trình hay tạo ra những
trang web một cách nhanh chóng
Tích hợp tất cả các thuộc tính, các đối tượng của các ngôn ngữ như VBScript,
JavaScript, J++ hay các đối tượng của ASP
Visual InterDev có một trình soạn thảo thông minh, tự động hiểu được tất cả các
method, properties, event của đối tượng (để thấy rõ điều này xin xem hình 5).
Một vài hình vẽ sau sẽ cho thấy sự thuận tiện của Visual InterDev trong việc lập
trình web, đặc biệt là lập trình với các trang ASP.
Cho phép tạo ra
các trang html,
asp...
Hình 4: Chọn lựa các kiểu khác nhau để tạo trang web
Hiển thị tất cả các thuộc tính
các phương thức của một đối
tượng asp
Hình 5: Trình soạn thảo thông minh cho phép lập trình
thuận lợi
Các công cụ hỗ
trợ cho lập trình
các trang web Cho phép gỡ rối chương trình
Tạo ra 1 Project để
chứa tất cả các file
trong web site
Nhìn thấy
trực tiếp kết
quả lập trình
Xem mã nguồn của
chương trình
Hình 6: Có thể quản lý được 1 project, thấy được trực quan kết quả lập trình, hỗ trợ các
công cụ...
5 . DHTML (dynamic html)
- DHTML là sự kết hợp giữa các thuộc tính của HTML, JavaScript và Vbscript.
Trước đây muốn làm một trang Web đẹp, với các hình ảnh động, chữ đổi màu, đổi
kiểu chữ hay muốn làm một menu trên trang web là một điều khó khăn. Gần đây
Microsoft đưa ra công nghệ DHTML (dynamic HTML), DHTML được xây dựng dựa trên
nền tảng của HTML, nhưng khả năng của DHTML tỏ ra nổi trội hơn so với HTML do
khả năng tạo ra những trang web động và linh hoạt.
- Khả năng của DHTML
Với DHTML ta có thể dễ dàng tạo ra những hiệu ứng đối với trang web, công việc
này trước đây phải mất rất nhiều thời gian và công sức.
Có thể dấu đi một dòng chữ hay một bức ảnh nào đó trên trang web và có thể cho nó
xuất hiện bất cứ khi nào ta muốn.
Có thể tạo ra những dòng chữ hay những bức tranh sống động trên trang web
Có thể tạo ra những form trên trang web, dữ liệu trong form có thể cho hiển thị ngay
lên chính trang web đó mà không phải mở ra một trang web khác (thông thường, với
HTML ta muốn hiển thị một thông tin khác lên trên trang web thì bắt buộc một trang web
khác phải được mở ra).
Có thể dùng DHTML để hiển thị thông tin trong cơ sở dữ liệu.
CHƯƠNG 3
PHÂN TÍCH CHƯƠNG TRÌNH
I. TỔNG QUÁT VỀ CHỨC NĂNG CỦA DIỄN ĐÀN TRÊN WEB
- Gửi bài lên diễn đàn.
- Xem bài đã được gửi theo các chủ đề khác nhau
- Trả lời bài đã được gửi
- Tìm kiếm một bài
- Đăng ký trở thành thành viên của diễn đàn
- Đánh dấu bài ưa thích
- Xoá các bài đã có trên diễn đàn
- Thêm người sử dụng
- Xoá người sử dụng
- Thêm chủ đề cho diễn đàn
- Xoá chủ đề.
Chức năng chính của Diễn đàn trên web là cho phép người sử dụng đưa được ý kiến
của họ lên mạng. Để hiểu được một cách khái quát web forum hoạt động như thế nào
chúng ta xét một ví dụ về chức năng chính của diễn đàn là xem và gửi bài.
Ví dụ:
Khi tham gia vào diễn đàn người sử dụng sẽ lựa chọn một chủ đề trong loạt các chủ
đề của diễn đàn như trong hình 7, Ví dụ ta chọn chủ đề “lập trình”, sau khi chọn chủ đề
xong, một danh sách các bài thuộc chủ đề đó sẽ xuất hiện như hình 8. Người sử dụng sẽ
chọn một trong các bài trong danh sách để xem nội dung, ví dụ chọn bài “Con trỏ trong
C” thì nội dung của bài này hiện ra như trong hình 9, nếu người đọc thấy có thể trả lời
được thì nhắp vào nút trả lời và nhập nội dung vào form như hình 10 và nhắp nút trả lời,
bài trả lời sẽ nằm ngay dưới câu hỏi.
Nếu người sử dụng muốn gửi một bài mới thì có thể nhắp vào nút “Gửibàimới”.
Trên đây là phần sơ lược về hoạt động cơ bản của diễn đàn. Ngoài ra nó còn cho phép
người dùng có nhiều thao tác khác khác nhau. Để minh hoạ cho chức năng chính của diễn
đàn là gửi và trả lưòi một bài, ta đưa ra ví dụ để chúng ta có thể hình dung được khái quát
diễn đàn dùng làm gì và nó có dáng dấp như thế nào. Phần sau chúng ta sẽ đi chi tiết về
chức năng của diễn đàn.
Hình 8: Danh sách các bài đã đăng
Hình 7: Các chủ đề của diễn
®µn
II. CÁC VẤN ĐỀ CẦN GIẢI QUYẾT KHI XÂY DỰNG CHƯƠNG TRÌNH
Thiết kế tổng quát ứng dụng: nhằm giúp người lập trình dễ phát triển ứng dụng một
cách có tổ chức, đúng hướng, đúng yêu cầu đã đề ra.
Thiết kế cơ sở dữ liệu: đây là phần quan trọng, có liên quan đến tính tối ưu của hệ
thống.
Xây dựng giao diện: tạo điều kiện thuận lợi cho người sử dụng khi gửi các yêu cầu
của mình đến web server.
Viết các trang web để thực hiện các chức năng của chương trình: dựa vào ASP và
các ngôn ngữ script để tạo ra những modul cho chương trình.
Kiểm tra, sửa lỗi chương trình
Hình 9: Xem nội dung 1 bài
Hình 10: Gửi bài mới, hoặc trả lời
1. Phân cấp người sử dụng
Không phải tất cả người sử dụng diễn đều có quyền thực hiện tất cả các khả năng
trên. Ví dụ, một người sử dụng thông thường không thể có quyền xoá bài trên diễn đàn,
hoặc có thể đánh dấu một bài... Do vậy, phân quyền cho người sử dụng là điều cần thiết
và khi tham gia vào diễn đàn tuỳ theo quyền của mình mà có các chức năng khác nhau.
Chương trình chia người sử dụng thành 3 cấp: cấp 0, cấp 1 và cấp 2.
- Cấp 0: người sử dụng chưa đăng ký
- Cấp 1: là những người quản lý hệ thống.
- Cấp 2: người sử dụng có đăng ký tên truy nhập.
a. Người sử dụng thông thường
Diễn đàn trên mạng là nơi mà tất cả mọi người đều có thể tham gia và đóng góp các
ý kiến, các câu hỏi của mình. Do vậy, một người không cần đăng ký có thể tham gia vào
diễn đàn và có các khả năng sau:
- Xem nội dung của một bài bất kỳ.
- Gửi câu hỏi mới theo một chủ đề nhất định nào đó
- Gửi câu trả lời cho những câu mà mình biết.
- Sắp xếp trật tự của các bài gởi theo ý muốn: theo chủ đề của bài gửi, theo tiêu đề,
theo ngày tháng năm, theo người gửi, ...
- Tìm kiếm: tìm kiếm bất kỳ một bài gởi nào đó trên diễn đàn theo: nội dung của bài
gởi, theo chủ đề, theo tiêu đề của bài gửi.
b. Người sử dụng có đăng ký
Diễn đàn trên Web có thể cho phép mọi người truy cập vào và gởi các bài của mình
lên diễn đàn, tuy nhiên hệ thống có cho phép người dùng có thể tạo cho mình một
Account riêng. Đối với những người dùng có đăng ký Account khi Login vào ứng dụng sẽ
có khả năng lưu giữ lại các bài mà người đó ưa thích. Lần truy cập tiếp theo, nếu người sử
dụng login đúng tên truy nhập và mật khẩu thì có khả năng xem lại các bài mà mình đã
ghi nhớ trong các lần trước.
Ngoài quyền lợi đưa đánh dấu bài, người sử dụng có đăng ký còn có thể có nhiều
quyền lợi khác như: nhận được thông tin về một bài mới hay các câu hỏi/ trả lời có liên
quan đến người sử dụng... Tuy nhiên trong quá trình phát triển ứng dụng do thời gian có
hạn nên chưa ứng dụng tạm thời chưa có chức năng này.
c. Người quản lý
Đối với người quản lý, ngoài các hoạt động như một người sử dụng bình thường còn
có các khả năng sau:
- Quản lý người sử dụng:
- Xoá người sử dụng: xoá một người sử dụng bình thường ra khỏi hệ thống
- Tạo người sử dụng mới
- Xoá các bài trên diễn đàn: Đây là một biện pháp dùng để quản lý nội dung của các
bài viết gởi lên diễn đàn
- Quản lý các chủ đề của diễn đàn:
- Xoá một chủ đề bất kỳ
- Thêm vào một chủ đề mới
SƠ ĐỒ QUI TRÌNH HOẠT ĐỘNG CỦA CÁC TRANG TRONG ỨNG DỤNG WEB
FORUM
Xem nội dung 1 bài
Gửi bài mới
Quay về trang
hiển thị
Xem, gửi bài
Hiển thị các bài
Nội dung bài
Soạn và gửi bài
2. Hoạt động của chương trình:
Khi người sử dụng gửi yêu cầu đến server có chứa ứng dụng, nếu yêu cầu được đáp
ứng trang web giao tiếp với người sử sụng sẽ hiện ra trên máy của người dùng. Từ đây
người sử dụng có thể tiếp tục gửi các yêu cầu của mình đến server bằng cách chọn các
chức năng tương ứng đã được thiết kế sẵn trên các trang web và server sẽ nhận các yêu
cầu này sau đó xử lý tính toán ngay trên server và trả về cho người dùng những gì mà họ
yêu cầu.
Cụ thể qui trình hoạt động của các trang như sau:
Qui trình gửi và xem bài
Trang đầu tiên sẽ là trang hiển thị danh sách các bài được gửi dưới dạng các siêu
liên kết. Người sử dụng muốn xem nội dung của một bài nào đó thì kích vào tiêu đề của
bài. ở trang xem nội dung người sử dụng có thể trả lời cho bài có nội dung vừa đọc. Ngoài
ra người sử dụng có thể gửi một bài mới.
Qui trình tìm kiếm bài
Áp dụng đối với: Người sử dụng bình thường, người sử dụng có đăng ký, người
quản lý.
Khi người sử dụng muốn tìm kiếm một bài nào đó, sẽ có một trang tìm kiếm và ở
trang tìm kiếm
- Tìm kiếm theo chủ đề của bài gửi
- Tìm kiếm theo nội dung của bài gửi
- Tìm kiếm những bài trong một khoảng thời gian giới hạn nào đó
Kết quả trả về:
Nếu tìm thấy các bài có như nội dung người dùng cần tìm kiếm thì danh sách các bài
được tìm thấy sẽ được liệt kê trên trang web
Nếu không tìm thấy sẽ hiển thị thông báo không tìm thấy
Qui trình đăng ký và login của người sử dụng, ghi nhớ bài
Áp dụng đối với: Người chưa đăng ký, người đã đăng ký, người quản lý.
Để trở thành một thành viên của diễn đàn, người sử dụng phải đăng ký một account
và sẽ được hệ thống cấp một tên truy nhập và mật khẩu riêng cho người đó.
Khi yêu cầu được đăng ký, một trang đăng ký bao gồm các ô để nhập thông tin được
hiện ra, người sử dụng sẽ nhập các thông tin vào các ô này và gửi đi, nếu được hệ thống
chấp nhận thì người đăng ký sẽ nhận được một thông báo chúc mừng thành công, nếu
không thành công hệ thống sẽ thông báo lỗi và hiện ra lại trang đăng ký cho người sử
dụng sửa lại các thông tin đăng ký cho phù hợp.
Khi đã trở thành một thành viên của diễn đàn người sử dụng ngoài việc có thể sử
dụng các trang giống như một người sử dụng bình thường còn có thể đánh dấu những bài
mà mình ưu thích.
Qui trình hoạt động của người quản lý:
Áp dụng đối với: Người quản lý
Để forum hoạt động tốt cần phải có một người quản lý, chức năng của người quản
lý bao gồm:
- Xoá bài
Chương trình cho phép người quản lý chọn bất cứ một bài nào đó để xoá và có thể
xoá nhiều bài hoặc xoá một bài. Việc xoá bài thực hiện theo nguyên tắc: khi một bài cha
được xoá thì tất cả các bài con của nó sẽ được xoá theo.
Thêm người sử dụng , xoá người sử dụng
Nhằm quản lý được người dùng trên hệ thống, chương trình cho phép người quản lý
có thể thêm người sử dụng vào hệ thống và ngược lại có thể xoá người sử dụng ra khỏi hệ
thống.
- Thêm chủ đề , xoá chủ đề
Để cho diễn đàn ngày càng phong phú, người quản lý có thể thêm vào diễn đàn
những chủ đề cho phù hợp với yêu cầu thực tiễn. Ngược lại, nếu có một chủ đề nào đó mà
quá lâu ngày không có người tham gia thì người quản lý có thể xoá chủ đề đó đi. Việc xoá
chủ đề cũng theo nguyên tắc là tất cả các bài thuộc chủ đó cũng xoá theo.
CHƯƠNG 4
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Như đã nói trong phần giới thiệu tổng quan về hoạt động của diễn đàn, người sử
dụng khi gửi một bài lên diễn đàn thì các thành phần của một bài gửi: thông tin về người
gửi, tiêu đề bài gửi, nội dung... đều phải được lưu trữ trong cơ sở dữ liệu trên máy chủ.
Thông thường người ta thường dùng các mô hình cơ sở dữ liệu quan hệ để chứa các
thông tin về bài gửi như SQL Server hay MS Access.
Trong đồ án này em chọn cơ sở dữ liệu là Access để lưu các thông tin về bài gửi. Do
có liên quan nhiều đến cơ sở dữ liệu, đồng thời các thông tin của bài gửi đòi hỏi phải
được tổ chức một cách hợp lý và chặt chẽ nên trong phần này chủ yếu trình bày về phần
phân tích và thiết kế hệ thống.
I. NHỮNG THÔNG TIN CẦN QUẢN LÝ TRÊN CƠ SỞ DỮ LIỆU
Thông tin các bài mà người sử dụng gửi lên diễn đàn, mỗi bài phải có mã riêng, cấp
của bài đó, nội dung của bài là gì.
Thông tin về người dùng, khi người sử dụng đăng ký thì các thông tin về người sử
dụng như: tên truy nhập, mật khẩu, cấp của người sử dụng (cấp Admin và cấp User) phải
được lưu trữ trên cơ sở dữ liệu.
Nội dung của bài sau khi gửi sẽ được tách ra thành các từ khoá, các từ khoá này sẽ
tạo nên các bảng chỉ mục dùng cho mục đích tìm kiếm thông tin về các bài gửi đã gửi lên
diễn đàn. Do vậy các từ khoá, các chỉ mục cũng phải được lưu giữ.
Quản lý các chủ đề của bài gửi, các chủ đề này do người quản lý diễn đàn qui định
và có thể thêm bớt.
Quản lý các thông tin ghi nhớ bài của tất cả các thông tin về người sử dụng: họ tên,
e-mail...
II. PHÂN TÍCH VÀ THIẾT KẾ
1. Sơ đồ dòng dữ liệu DFD
U
s
e Gởi bài lên diễn đàn
Yêu cầu tìm kiếm các thông
tin trên diễn đàn
Yêu cầu xem các bài trên
diễn đàn
Các bài viết trên diễn àn
Kết quả tìm kiếm
Các trang Web
Xem các bài đã
được gởi
Phân tích bài
được gởi
Tìm kiếm
U
s
e Xử lý yêu cầu User Login User gởi yêu cầu
Đăng ký
Đăng ký
User
chưa
đăng ký
User đã
đăng ký
Hình 13: DFD cấp 1 của phần xem các bài đã được gửi (1)
Xem các bài đã
được gửi
Các bài viết trên diễn đàn
Các chủ đề của diễn đàn
Sắp xếp bài theo tiêu
đề, thời gian, chủ đề...
Hình 15: DFD cấp 1 của phân tích bài được gởi lên diễn đàn (3)
Phân tích
bài được
gởi
Các bài viết trên diễn đàn
Các chủ đề của diễn đàn
Bảng chỉ mục, bảng từ khoá
phân tích nội
dung của bài
gởi
Phân tích các thông
tin chủ đề; ngày
tháng gởi, cấp bài
gởi...
Hình 14: DFD cấp 1 của phân đăng ký (2)
Đăng ký
Danh sách người sử dụng
Kiểm tra
cho phép đâng
ký
Hình 16: DFD cấp 2 của quá trình tìm kiếm (4)
Tìm kiếm
Tìm kiếm theo
nội dung
Tìm kiếm
theo chủ đề
Tìm kiếm
theo tiêu đề
Các bài viết trên diễn đàn
Các chủ đề của diễn đàn
Bảng từ khoá, bảng chỉ mục
Dữ liệu các bài gởi
Các bài viết trên diễn đàn
Các chủ đề của diễn đàn Danh sách người sử dụng
Hình 17: DFD cấp 1 của phân Login (5)
Login
Danh sách người sử dụng
Kiểm tra cho
phép login
Hình 19: DFD cấp 1 của quá trình xử lý yêu cầu của Admin (7)
Xử lý yêu cầu
của Admin
7
Thêm chủ ề
7.1
Xoá các bài ã gởi
7.5
Thêm User
7.3
Các chủ đề của forum
Dữ liệu nội dung bài gởi
Danh sách User
Xoá User
7.4
Xoá chủ ề
7.2
2. Dữ liệu thu thập được
a. Dữ liệu về bài gửi
Mỗi bài gửi bao gồm các thuộc tính như sau:
- Mã bài gửi
- Cấp của bài gửi
- Mã bài cha (nếu là bài mới trường này có giá trị là 0, bài trả lời trường này chứa
mã bài của bài được nó trả lời)
- Thứ tự
- Thuộc chủ đề nào
- Tiêu đề của bài viết
- Họ tên người gửi
- Địa chỉ mail của người gửi
- Ngày giờ gửi
- Nội dung của bài gửi.
b. Dữ liệu về người sử dụng
Mỗi người sử dụng khi đăng ký sẽ có những thuộc tính sau:
- Mã người sử dụng
- Tên truy nhập
- Mật khẩu
- Quyền truy cập (Admin hay User)
- Địa chỉ Email
c. Dữ liệu về chủ đề của các bài gửi
Các chủ đề của các bài trên web forum có các thuộc tính sau:
- Mã chủ đề
- Tên chủ đề
3. Các cấu trúc kiểu
Dựa vào các dữ liệu thu lượm được ta có xây dựng thành các cấu trúc kiểu. Từ các
cấu trúc kiểu này ta có thể xây dựng được các mô hình biểu diễn
hệ thống thông tin của web forum
a. Dữ liệu bài gửi:
Dữ liệu Mã bài gửi là khoá của thực thể BàiGửi vì nó cho
phép chỉ định một bài duy nhất
Các kiểu dữ liệu khác đều là thuộc tính của thực thể
BàiGửi vì có các phụ thuộc hàm giữa khoá là MãBàiGửi và mỗi thuộc tính của nó. Vậy ta
nhận được cấu trúc kiểu phiếu là BAIGUI
Vậy mỗi giá trị của khoá MãBàiGửi tương ứng với một và chỉ một giá trị thuộc tính
khác của thực thể BAIGUI
b. Người sử dụng:
MãNgườiSD là khoá của thực thể NGUOISD, đây cũng là
cấu trúc kiểu phiếu và khoá MãNgườiSD cho phép chỉ định một
người sử dụng duy nhất. Mỗi một giá trị của khoá MãNgườiSD
chỉ tương ứng với một và chỉ một giá trị thuộc tính khác của thực thể NGUOISD.
c. Chủ đề:
NgườiSD
MãNgườiSD
TênTruyNhập
Email
MậtKhẩu
QuyềnTruyCập
BàiGửi
MãBàiGửi
Cấp
BàiTrước
ThứTự
MãChủĐề
Tiêu Đề
NgườiGửi
Email
NgàyGiờGửi
NộiDung
MãChủĐề là khoá của thực thể chủ đề, thuộc tính còn lại duy
nhất của phiếu CHUDE là ChủĐề (tên của chủ đề). Mỗi một
ChủĐề cho phép xác định duy nhất một chủ đề.
d. Dữ liệu Từ khoá:
Từ khoá có nguồn gốc từ nội dung của bài gửi. Từ nội dung
của bài gửi ta tách nội dung thành các từ riêng biệt, mỗi từ là một
từ khoá. MãTừKhoá là khoá của thực thể TUKHOA. Trong cấu
trúc của thực thể TUKHOA MãTừKhoá tương ứng với một và chỉ một giá trị thuộc tính
TừKhoá.
4. Quan hệ giữa các thực thể
a. Quan hệ giữa BàiGửi và Từ khoá
Sau khi người sử dụng gửi một bài bất kỳ lên diễn đàn, nội dung của bài ngoài việc
lưu giữ vào cơ sở dữ liệu còn được tách ra thành các từ, các từ này được gọi là các từ
khoá và cũng được lưu trữ. Và để thể hiện mối quan hệ giữa các từ khoá ta có một kết hợp
không phân cấp giữa hai thực thể BAIGUI và TUKHOA.
ChủĐề
MãChủĐề
TênChủĐề
TừKhoá
MãTừKhoá
TừKhoá
Thuộc về
1-n
0-n
BàiGửi
MãBàiGửi
Cấp
MãBàiTrước
ThứTự
MãChủĐề
Tiêu Đề
NgườiGửi
Email
NgàyGiờGửi
NộiDung
TừKhoá
MãTừKhoá
TừKhoá
b. Quan hệ giữa CHUDE và BAIGUI
Đây là một cấu trúc kiểu CHA_CON. Mỗi chủ đề có thể không có một bài nào nói
về chủ đề đó hoặc cũng có thể có nhiều bài nói về chủ đề này. Và mỗi bài chỉ duy nhất nói
về một chủ đề.
c. Quan hệ giữa người sử dụng và bài gửi:
0_n 1_1
BàiGửi
MãBàiGửi
Cấp
MãBàiTrước
ThứTự
Tiêu Đề
NgườiGửi
Email
NgàyGiờGửi
NộiDung
ChủĐề
MãChủĐề
TênChủĐ
ề
Đối với người sử dụng có đăng ký một tên truy nhập và một mật khẩu trên hệ thống,
thì chương trình cung cấp khả năng lưu trữ bất cứ một bài nào đó mà người dùng ưa thích,
hoặc lưu nhớ lại để lần sau đọc các bài này được dễ dàng và nhanh chóng. Để thể hiện
mối quan hệ trên ta có quan hệ sau:
GhiNhớBài
1-1 0-n
BàiGửi
MãBàiGửi
Cấp
MãBàiTrước
ThứTự
MãChủĐề
Tiêu Đề
NgườiGửi
Email
NgàyGiờGửi
NộiDung
NgườiSD
MãNgườiSD
TênTruyNhập
MậtKhẩu
QuyềnTruyCậ
p
Mô hình thực thể kết hợp:
Mô hình quan niệm dữ liệu
MãChủĐề
TênChủĐề
ChủĐề
MãBàiGửi
Cấp
MãBàiTrước
ThứTự
Tiêu Đề
NgườiGửi
Email
NgàyGiờGửi
NộiDung
BàiGửi
MãTừKhoá
TừKhoá
TừKhoá
MãNgườiSD
Tênđầyđủ
TênTruyNhập
MậtKhẩu
NgườiSD
Ghi nhớ bài
Thuộc về
1-1
0-n
0-n 1-1 1-n 1-n
ChủĐề
Ghinhớbài
BàiGửi
MãChủĐề
TênChủĐề
Mã
Mãbài
MãNgườiSD
MãNgườiSD
TênTruyNhập
NgườiSD
MãBàiGửi
Cấp
MãBàiTrước
ThứTự
MãChủĐề
Tiêu Đề
NgườiGửi
Email
NgàyGiờGửi
NộiDung
1-1
0-n
1-1 0-n 1-1 0-n
1-n
Chuyển đổi mô hình quan niệm dữ liệu thành mô hình logic dữ liệu tệp:
Bảng BàiGửi: Bảng này được dùng để lưu trữ các bài được gửi lên diễn đàn
Dữ liệu Mô tả kiểu dữ liệu Mô tả
MãBàiGửi N Mã (Số thứ tự) của bài được gửi.
Cấp N Dùng chứa cấp của bàI gửi.
MãBàiTrước N Chứa MãBàiGửi của bàI mà nó trả lời.
ThứTự N
MãChủĐề N Chứa mã chủ đề của bài gửi đó
TiêuĐề M Chứa tiêu đề của bài gửi
NgườiGửi C50 Tên của người gửi
Email C100 Địa chỉ Email của người gửi
NgàyGiờGửi D Ngày giờ lúc gửi
NộiDung M Nội dung của bài gửi
Bảng ChỉMục:
Dữ liệu Mô tả kiểu dữ liệu Mô tả
MãChỉMục N
MãBàiGửi N
MãTừKhoá N
Bảng TừKhoá:
Dữ liệu Mô tả kiểu dữ liệu Mô tả
MãTừKhoá N
TừKhoá C30
Bảng NgườiSD:
Dữ liệu Mô tả kiểu dữ liệu Mô tả
MãNgườiSD N
TênTruyNhập C30
MậtKhẩu C30
MãQuyềnTruyNhập N
Bảng GhiNhớBài:
Dữ liệu Mô tả kiểu dữ liệu Mô tả
Mã N
MãNgườiSD N
MãBàiGửi C30
CHƯƠNG 5
XÂY DỰNG CHƯƠNG TRÌNH
Chương này trình bày hai phần chính:
Phần 1: Phân tích các chức năng chung như thuật toán quản lý các bài như thế nào,
trật tự cách hiển thị thông tin về các bài lên web.
Phần 2: Đi sâu vào cách viết các trang theo yêu cầu của người sử dụng: ví dụ các
trang đáp ứng yêu cầu của người quản lý, của người sử dụng
I. QUẢN LÝ CÁC BÀI GỬI LÊN DIỄN ĐÀN
Tất cả các bài viết gửi lên diễn đàn đều có đặc điểm chung giống nhau như sau:
- Thuộc về một chủ đề nào đó
- Có thể là câu hỏi hoặc là câu trả lời cho một vấn đề nào đó.
Vậy để quản lý các bài viết trên diễn đàn ta phải biết:
- Bài đó thuộc chủ đề nào
- Phải phân biệt được đâu là câu hỏi đâu là câu trả lời
- Nếu là câu trả lời thì phải biết trả lời cho bài nào
Để giải quyết các vấn đề trên ta đưa ra các cách giải quyết sau:
Có nhiều cách quản lý bài khác nhau, trong phần này em xin được trình bày hai cách
tổ chức quản lý bài, phân tích ưu nhược điểm của hai phương pháp, cuối cùng rút ra
phương pháp nổi trội hơn.
Cách 1:
Cách dữ liệu của bài gửi được lưu trữ trong bảng có cấu trúc như sau:
Tên trường Kiểu Diễn giải
Mãbài Number Số bài viết
Thứtự Char(40) Thứ tự bài viết trên diễn đàn
Chủđề Char(255) Chủ đề bài viết
Trong đó:
Mãbài: tự động tăng lên 1 khi thêm 1 bài viết mới
Thứtự: đây là chuỗi ký tự gồm một hoặc nhiều cụm 4 chữ số, và số cụm từ cho biết
cấp của bài đó:
Số cụm = 1 (cấp 1): đây là một bài viết mới.
Số cụm = n, n>1 (cấp n): đây là bài trả lời cho bài cấp n-1
Cách xây dựng trường Thứtự
Nếu là bài viết mới: Thứtự = Mãbài
Nếu là bài trả lời:Thứtự = Thứtự của bài trả lời + Mãbài
Nếu mã bài không đủ bốn chữ số thì thêm các chữ số 0 vào đầu cho đủ bốn chữ số.
Ví dụ:
Ta có 4 bài viết được gửi lên diễn đàn và được lưu trữ trong cơ sở dữ liệu như sau:
Mãbài Thứtự Tiêu đề
1 0001 Tiêu đề 1
2 00020001 Trảlời: Tiêu đề 1
3 000300020001 Trảlời:Trảlời: Tiêu đề 1
4 00040001 Trảlời: Tiêu đề 1
Với cách lưu trữ như trên ta đễ dàng nhận ra được qui luật tổ chức các bài trên được
gửi lên diễn đàn. Cụ thể: bài số 1 có trường Thứtự là một cụm bốn chữ số vậy đây là bài
cấp 1, bài viết số 2 có Thứtự là một chuỗi có 2 cụm bốn chữ số, vậy đây là bài cấp 2 đồng
thời chuỗi ký tự cuối (trừ 4 ký tự đầu) là chuỗi Thứtự của bài 1 nên đây là bài trả lời cho
bài 1....
Tuy nhiên với cách quản lý như trên, về mặt hình thức nhìn vào rất khó hiểu, về mặt
nội dung cách tổ chức trường nội dung như vậy là tốn kém (như khi có một bài cấp = 10
thì số ký tự của trường này sẽ lên đến 4 x 10 = 40 ký tự). Hay để tìm một bài xem nó là
bài con của bài nào thì phải phân tích một chuỗi ký tự khá dài sau đó lại phải đi so sánh
với trường thứ tự của tất cả các bài mới tìm được...
Cách 2
Để dễ hình dung cách quản lý các bài viết trên diễn đàn ta đưa ra ví dụ sau:
Giả sử ta đã có các bài gửi có mã bài từ: 150 đến 157 trong đó có cả các câu hỏi và
câu trả lời. Khi tham gia vào diễn đàn, muốn xem các bài đã gửi chúng ta sẽ thấy xuất
hiện một trang trông giống như hình sau:
Như đã thấy trong hình, một bài viết được hiển hiện lên trang web bao gồm các
thông tin về: tiêu đề của bài viết, người gửi, ngày giờ gửi. Tiêu đề được hiển thị dưới
dạng một siêu liên kết và khi người sử dụng nhắp vào đây sẽ xem được nội dung của bài
viết.
Hình 20: Trang hiển thị các bài viết
Và các bài viết sẽ được lưu trữ trong cơ sở dữ liệu như sau:
Mãb
ài
Cấpbà
i
Bàicha Thứt
ự
Tiêuđề Chủđề Ngườig
ưi
Nộidun
g
...
150 1 0 1 ... ... ... ... ...
151 1 0 1 ... ... ... ... ...
152 2 151 1 ... ... ... ...
153 2 151 2 ... ... ... ...
154 3 152 1 ... ... ... ...
155 4 154 1 ... ... ... ...
156 1 0 1 ... ... ... ...
157 2 156 1 ... ... ... ...
Cấp của bài viết
Để có thể quản lý được bài viết gửi lên diễn đàn thì mỗi một bài được gửi sẽ được
gán cho một mã số, nhưng để có thể quản lý theo kiểu phân cấp giữa bài cha, bài con thì
phải có thêm một trường phân bài ra thành các cấp khác nhau.
Cấp của bài phải tuân theo qui tắc sau đây:
- Bài được gửi lần đầu tiên không trả lời cho bài nào cả sẽ là cấp 1
- Các bài trả lời cho bài cấp 1 sẽ có cấp là 2
- Bài trả lời cho bài cấp 2 sẽ có cấp là 3...
Ví dụ: như trong hình trên các bài có dấu cộng phía trước có cấp là 1, các bài còn lại
cấp của bài được xác định bằng các dấu mũi tên ở phía trước (có 2 mũi tên sẽ là bài cấp
2...)
Lưu trữ mã bài cha
Đây là cách đi kèm với cách xác định cấp bài để xem bài nào là bài cha, bài nào là
bài con và bài con đó thuộc về bài cha nào.
Trường bài cha được tổ chức theo cách:
- Nếu là bài gửi đầu tiên, không trả lời cho một bài nào cả thì giá trị của trường này
bằng 0
- Nếu là bài trả lời thì giá trị của trường này là số mã bài của bài cha (bài mà nó trả
lời).
Ví dụ:
Nhìn vào trong bảng sau ta có thể thấy được qui luật tổ chức trường bài cha như thế
nào. Bài 150, 151, 156 là các câu hỏi, bài đầu tiên. Bài 152, 153 là bài trả lời của bài 151,
154 là bài trả lời của bài 152...
Cách tổ chức trường thứ tự
Để giúp cho việc xác định thứ tự của các bài gửi lên diễn đàn. Được tổ chức theo
luật sau: câu hỏi (không trả lời cho bài nào cả) có thứ tự bằng 1.
Câu trả lời cho một bài theo luật sau:
- Nếu có một câu trả lời thì thứ tự của câu trả lời bằng 1
- Nếu có từ hai câu trả lời cho một bài (hai câu trả lời có cấp bài bằng nhau) thì bài
trả lời thứ nhất cũng có giá trị thứ tự bằng 1, bài trả lời thứ hai sẽ có thứ tự bằng 2...
Chúng ta sẽ thấy được tác dụng của trường này một cách rõ rệt là khi in danh sách
các bài theo qui luật cây thư mục.
Hiển thị bài theo qui luật cây thư mục
Với cách quản lý trên ta có thể viết những đoạn chương trình cho phép hiển thị các
bài viết theo luật hiển thị của một cây thư mục, tức là bài con hiển thị ngay sau dưới bài
cha. Hình vẽ sau hiển thị tất cả các bài trong bảng trên.
1 2 3 4 5
156
157
151
152
154
155
153
150
Bài cha Thứ tự
1 0 1
2 156 1
3 0 1
4 151 1
5 152 1
6 154 1
7 151 2
8 0 1
Cấp bài Mã bài
Trong hình trên, đầu tiên bài cấp 1 sẽ được hiển thị đầu tiên, sau đó là các cấp lớn
hơn nhưng phải là bài con của bài đã hiển thị. Ví dụ bài 156 có một bài con là bài 157.
Tương tự cho các bài khác. Trong các hiển thị trên ta thấy bài bài 151 có tất cả 4 bài trả
lời, trong đó có hai bài trả lời cùng cấp là 152 và 153, như vậy trường thứ tự của chúng
khác nhau để có thể in ra được đúng trật tự (in ngang hàng với bài 152).
Vậy ta có thể thấy cách quản lý bài thứ hai hiệu quả và rõ ràng hơn nhiều so với
cách quản lý thứ nhất. Do vậy trong chương trình cách thứ hai sẽ được chọn để quản lý
các bài viết trên diễn đàn.
Trên là phần tóm tắt cách quản lý và cách hiển thị các bài như thế nào trên trang
web, sau đây chúng ta đi sâu vào cách xây dựng từng trang web.
Xây dựng các trang web dựa vào yêu cầu của người sử dụng
II. XỬ LÝ YÊU CẦU CỦA NGƯỜI CHƯA ĐĂNG KÝ
Xin được nhắc lại người sử dụng chưa đăng ký có thể có các yêu cầu sau:
- Xem bài
- Gửi một bài mới
- Trả lời một bài đã có
- Sắp xếp các bài đã hiển thị trên trang web theo nhiều cách: sắp xếp theo thời gian,
sắp xếp theo thứ tự abc của tiêu đề, sắp xếp theo thứ tự abc của người gửi.
Hiển thị bài theo một tháng nào đó tuỳ ý.
- Tìm kiếm
Trang web phải cho phép người sử dụng thực hiện được tất cả các yêu cầu trên. Đầu
tiên ta dùng hình vẽ của trang web để minh hoạ, sau đó sẽ đi sâu vào thuật toán được xây
dựng như thế nào để thực hiện các yêu cầu đó.
Hình 21: Các chức năng chính trên trang web
Tìm kiếm Sắp xếp bài
theo tháng
Danh sách các bài
Chọn cách sắp xếp Gởi bài mới
1. Xem bài
Để xem được nội dung một bài cần phải biết bài đó thuộc chủ đề nào và có mã số
bằng bao nhiêu. Do vậy, khi một người tham gia vào diễn đàn thì trang đầu tiên mà người
sử dụng nhìn thấy là một danh sách các chủ đề của diễn đàn. Từ đây người sử dụng bắt
đầu chọn chủ đề mà mình quan tâm. Sau khi chọn chủ đề xong nếu có bài thuộc chủ đề đó
thì danh sách bài sẽ được hiển thị, trong hình trên là danh sách bài thuộc chủ đề “Lập
trình”. Và số bài hiển thị chỉ là các các bài gửi trong tháng, ví dụ: hiện tại đang là tháng 5
thì các bài trong tháng 5 được hiển thị lên.
Thuật toán hiển thị danh sách các bài theo chủ đề:
Đầu vào: chủ đề cần hiển thị
Đầu ra:
Nếu có tồn tại chủ đề:
danh sách các bài theo chủ đề đã chọn
Nếu không tồn tại chủ đề:
hiển thị thông báo không tìm thấy
Để có được đầu vào ta dùng các truyền biến theo liên kết, ví dụ: nếu người sử dụng
cần hiển thị bài theo chủ đề là “Lập trình” tương ứng với chủ đề lập trình sẽ có một mã
cho chủ đề đó (các giá trị này nằm trong bảng “Chủ đề”), chủ đề lập trình có mã là “10”
vậy ta truyền biến bằng như sau: sdachbai.asp?chude=10 trang dsachbai.asp sẽ nhận
được biến chủ đề này bằng cách dùng đối tượng Request.QueryString(“chude”), sau đó
dùng biến này để hiển thị các bài chủ đề = 10
Thuật toán hiển thị bài:
Chọn những bài có cấp = 1, theo thứ tự thời gian, theo chủ đề có trước
Lưu tất cả các bài cấp 1 vào trong một mảng có tên mangCap1
Chọn những bài có cấp > 2
Lưu tất cả các bài cấp 2 vào mảng có tên mangCap2
Hiển thị bài:
IF số bài cấp 1 > 0 thì
For i = 0 to số phần tử của mangCap1
Hiển thị bài cấp 1
Kiểm tra xem bài này có bài trả lời hay không
Nếu có: hiển thị bài con
ELSE
Thông báo [Không có bài
Thuật toán tìm bài con của một bài cấp 1:
- Đầu vào: mã bài của bài cấp 1 cần tìm bài con
- Đầu ra: tất cả các bài con (bao gồm tất cả bài con của bài con)
- Để có thể hiển thị được tất cả các bài con, ta dùng một thủ tục đệ qui.
2. Xem nội dung một bài
Thủ tục tìmbaicon (mabaicha)
For i = 0 to số phần tử của mảng mangCap2
If bài con có BàiCha = mãbàicha thì
In bài con
Gọi đệ qui timbaicon(mabaicon) {mã bài con vừa tìm
thấy}
Nếu tìm thấy: In ra
End timbaicon
Để xem nội dung một bài, người sử dụng nhắp
vào liên kết của bài được hiển thị, ví dụ nhắp vào
liên kết “Con trỏ trong C” sẽ đọc được nội dung như
hình bên:
Để có thể hiển thị được nội dung của bài viết,
mỗi liên kết của mỗi bài có chứa biến số là mã của
bài đó, ví dụ bài “Con trỏ trong C” có mã bài là 156
thì liên kết sẽ có dạng: noidungbai.asp?mabai=156. Sau đó biến này sẽ được truyền sang
trang đọc nội dung với mã bài bằng 156. Trang noidungbai dùng
Request.QueryString(“mabai”) để lấy biến mã bài.
Sau khi xem xong, nếu biết trả lời người dùng có thể bấm vào nút, “Trả lời” để trả
lời cho bài đó.
3. Gởi bài (bài mới và bài trả lời)
Khi người dùng muốn gửi một bài mới lên diễn đàn, người dùng nhắp vào nút gửi
bài
Có hai hình thức gửi bài đó là gửi bài mới và gửi bài trả lời. Nếu gửi bài mới thì các
tham số cần thiết phải có là:
- Tên người gửi
- E-mail
- Tiêu đề
Hình 24: Trả lời một bài
Hình 23: Xem nội dung bài gửi
- Nội dung bài gửi
Nếu là bài trả lời thì các tham số cần thiết là:
- Mã của bài được trả lời
- Tên người gửi
- E-mail
- Tiêu đề
- Nội dung bài gửi
Thuật toán như sau:
Kiểm tra tính chính xác của các thông tin {email,
người gửi, tiêu đề đã nhập đủ chưa}
Kiểm tra có tồn tại mã bài của câu hỏi hay không
Nếu có { đây là bài trả lời }
Dựa vào mã bài của câu hỏi xác định:
Cấp của câu hỏi
Thứ tự của câu hỏi
Gán các biến cho bài con:
Cấp bài = cấp bài cha + 1
4. Đăng ký trở thành thành viên của Forum
Khi người sử dụng tham gia vào diễn đàn, nếu đăng ký một tên truy nhập trên hệ
thống thì người sử dụng ngoài các quyền giống như một người sử dụng bình thường
(người sử dụng chưa đăng ký) thì còn có khả năng ghi nhớ các bài viết trên diễn đàn mà
người đó cảm thấy đáng để đọc, đáng để nhớ. Đến lúc nào đó người sử dụng cần đọc lại
nội dung các bài này trên diễn đàn thì không phải tìm các bài đó mà chỉ cần login vào hệ
thống và yêu cầu được xem những bài mà họ đã đánh dấu, yêu cầu này sẽ được chương
trình đáp ứng ngay.
Việc đăng ký một tên truy nhập và một mật khẩu không nằm ngoài mục đích là dùng
tên truy nhập để làm cơ sở phân biệt bài được ghi nhớ là do ai thực hiện và giúp cho
chương trình có thể phân biệt được bài nào là do người nào ghi nhớ.
Khi đăng ký yêu cầu người đăng ký phải điền đầy các thông tin như trên hình sau:
Sau khi nhập đầy đủ các thông tin trên, người sử dụng bấm nút “Đăng ký”, chương
trình thực hiện thủ tục đăng ký.
Thuật toán đăng ký như sau:
Nhận thông tin về Tênđầyđủ, Têntruynhập, MậtKhẩu, E-mail
Kiểm tra phát hiện lỗi (thiếu thông tin, nhập sai yêu cầu)
IF có lỗi then báo lỗi
Quay lại trang nhập
ELSE
Truy xuất cơ sở dữ liệu chứa dữ liệu người dùng của
hệ thống
If tìm thấy một Têntruynhập giống tên vừa đăng ký
THEN
Báo lỗi
Quay lại trang nhập
Else {thông tin đăng ký hợp lệ}
Nhập tất cả các thông tin vừa đăng ký vào CSDL
END IF
Vậy nếu đăng ký thành công thì người sử dụng đó từ đấy trở về sau có thể sử dụng
tên truy nhập và mật khẩu vừa đăng ký để Login vào hệ thống.
5. Tìm kiếm:
Ứng dụng cho phép người sử dụng tìm kiếm thông tin về bất cứ một bài viết nào đó
trên diễn đàn theo những lựa chọn: tìm kiếm theo chủ đề của bài gửi, tìm kiếm theo tiêu
đề của bài gửi, tìm kiếm theo nội dung bài gửi.
a. Tìm kiếm theo chủ đề
Để tìm kiếm theo chủ đề, người sử dụng gõ một chuỗi ký tự bất kỳ thuộc chủ đề đó,
sau đó bấm nút “Search”, nếu có chủ đề nào có chứa chuỗi ký tự của người sử dụng vừa
nhập thì sẽ có kết quả trả về như hình 27
Hình 26: Tìm kiếm theo chủ đề
Thuật toán tìm kiếm theo chủ đề:
Ta dùng câu lệnh SQL sau để thực hiện việc tìm kiếm:
Trong đó biến “chuoicantim” là biến được lây từ ô nhập chuỗi cần tìm của trang web
tìm kiếm.
b. Tìm kiếm theo nội dung:
SQLQuery = "Select * from chude where chude.chude like '%"&chuoicantim&"%';
Hình 27: Kết quả tìm kiếm theo chủ đề
Xây dựng bảng chỉ mục phục vụ cho việc tìm kiếm
Để xây dựng bảng chỉ mục đầu tiên ta phải có một bảng từ khoá chứa các từ khoá
của bài viết. Từ khoá có được là do nội dung của bài viết được tách thành các từ, sau đó
chèn vào bảng từ khoá theo luật sau:
Bảng từ khoá là một bảng chứa các từ mà trong đó mỗi từ chỉ xuất hiện một lần.
Để có thể xây dựng được bảng từ khoá đầu tiên phải có được nội dung của bài viết.
Đầu vào: Nội dung của bài viết
Đầu ra: Các từ khoá
Qui trình thực hiện xây dựng một bảng từ khoá có thể tóm tắt như sau:
- Đầu tiên ta tách nội dung của bài viết thành các từ khoá
- Đưa tất cả các từ khoá vừa tách được vào trong một bảng tạm
- Dùng ngôn ngữ truy vấn dữ liệu để cập nhật các từ khoá trong bảng tạm vào trong
bảng từ khoá chính theo nguyên tắc: không thêm vào bảng chính những từ mà bảng chính
đã có.
Ví dụ:
Ta có một bài gửi có các tham số sau:
Mãbàigửi = 100
Nộidung: Tự học Visual-Basic 6 trong 6 ngày
Sau khi tách ra lưu vào trong bảng tạm như sau:
Mãbàigử Từ
Đưa từ khoá trong bảng tạm vào bảng chính:
Đưa các từ khoá vào trong bảng từ khoá theo nguyên tắc, từ khoá nào đã có thì
không thêm vào, ngược lại từ chưa có thì thêm vào cuối bảng.Ta dùng ngôn ngữ truy vấn
dữ liệu để thực hiện điều này
Sau khi thực hiện câu lệnh sql trên bảng từ khoá sẽ thêm vào những từ chưa có.
sqlQuery = "INSERT INTO TuKhoa ([tukhoa])SELECT
DISTINCT TuKhoaTam.tukhoa FROM TuKhoaTam LEFT JOIN
TuKhoa ON TuKhoaTam.tukhoa=TuKhoa.tukhoa WHERE
(((TuKhoa.tukhoa) is null));"
Ví dụ bảng từ khoá trước đã có từ: Visual, học, sau khi thêm các từ khoá của bài có
mã bài gửi là 100 vào thì như sau:
Mãtừkhoá Từkhoá
1 Visual
2 Học
3 Tự
4 Basic
5 Trong
6 6
7 Ngày
Thủ tục tách nội dung của bài gửi thành các từ khoá và đưa các từ khoá này vào
bảng tạm:
sub AddKeyWordtoTempTable(theString, IDMsg)
delim_ = ",.?/""!#$%^&*()-_=+\|;:"
On error resume next
delim = delim_ & chr(13) & chr(10)& chr(32)
sql= "Delete * from TuKhoaTam;"
Set Conn = Session("DBConn")
Conn.Execute(sql)
str = trim(theString)
length = len(str)
if length = 0 then exit sub
start = 1
for i = 1 to length
ch = mid(str, i, 1)
if InStr(delim, ch) > 0 then
KeyWord = trim(mid(str, start, i - start))
if KeyWord "" and not Isnull(KeyWord) then
Set Cn = Session("Connect")
sqlNew = "INSERT INTO TuKhoaTam ( ma, tukhoa
)SELECT "&IDMsg&", '"&KeyWord&"';"
Cn.Execute(sqlNew)
end if
start = i + 1
end if
next
if start < i then
KeyWord = Trim(Mid(str, start, i-start))
if KeyWord "" and not IsNull(KeyWord) then
Set Conn = Session("Connect")
sqlNew = "INSERT INTO TuKhoaTam ( ma, tukhoa)SELECT
"&IDMsg&", '"&KeyWord&"';"
Conn.Execute(sqlNew)
end if
end if
end sub
Tạo bảng chỉ mục:
Để có thể tìm kiếm được bài viết theo tiêu đề và theo nội dung, chương trình xây
dựng các bảng chỉ mục để tìm kiếm cụ thể như sau:
Sau khi đã có được bảng từ khoá tạm và bảng từ khoá ta tiếp tục xây dựng bảng chỉ
mục. Bảng từ khoá tạm được dùng để lấy các từ khoá của một bài mới được gửi và số mã
bài của bài gửi đó kết hợp với bảng từ khoá mỗi từ khoá sẽ ứng với một mã từ khoá. Vậy
ta đã có được 2 giá trị là mãbàigửi và mãtừkhoá để chèn vào bảng chỉ mục.
Tên trường Kiểu dữ liệu Giải thích
Mãbàigửi Number
Mãtừkhoá Number
Ví dụ:
Bảng sau đây là ví dụ cho các từ khoá của bài có mã 100, trường mã từ khoá sẽ được
đối chiếu với bảng từ khoá. Giả sử từ Visual trong bài số 98, từ học có mã bài số 99
Mãbàigửi Mãtừkho
á
98 1
99 2
100 3
100 2
100 1
100 4
100 6
100 5
100 6
100 7
Câu lệnh sql dùng để xây dựng bảng chỉ mục:
Vậy ta đã có được bảng chỉ mục
Tìm kiếm như thế nào?
Để tìm kiếm được một bài nào đó theo nội dung ta cần phải kết hợp ba bảng
“BàiGửi” bảng “TừKhoá” và bảng “ChỉMục” theo quan hệ như hình sau:
sqlQuery = "INSERT INTO ChiMuc ([mabai], [matukhoa]
)SELECT DISTINCT TuKhoaTam.ma, TuKhoa.matukhoa FROM
TuKhoaTam LEFT JOIN TuKhoa ON
TuKhoaTam.tukhoa=TuKhoa.tukhoa;"
Hình 28: Quan hệ giữa bảng “Bài Gửi”, “Chỉ Mục”, “TừKhoá “
Với sự kết hợp như trên ta có thể có cách tìm kiếm như sau:
Ví dụ người sử dụng cần tìm kiếm một bài có chữ “Java” thì thực hiện query sau:
Tuy nhiên trong trang tìm kiếm ta nhận từ tìm kiếm từ trang web, sau khi nhận xong
ta phải đưa từ này vào trong chuỗi query để tìm ra được bài cần tìm.
Trong câu truy vấn sau, biến chuoicantim chính la biến được lấy từ trang web
SQLQuery = "SELECT BaiGui.mabai, BaiGui.tieude,
BaiGui.nguoigui, BaiGui.email, BaiGui.thoigian, BaiGui.capbai,
BaiGui.baicha, BaiGui.thutu, TuKhoa.TuKhoa FROM TuKhoa INNER
JOIN (ChiMuc INNER JOIN BaiGui ON ChiMuc.mabai = BaiGui.mabai)
ON TuKhoa.matukhoa = ChiMuc.matukhoa WHERE
(((TuKhoa.TuKhoa)='"&chuoicantim&"'));"
Hình 29: Dùng SQL để tìm kiếm
Sau khi thực hiện query nếu có bài được tìm thấy ta sẽ cho xuất lên trang web có
hình như sau:
c.Tìm kiếm theo tiêu đề
Các tiêu đề của bài gửi sau khi được gửi lên diễn đàn cũng được tách ra thành các từ
khoá và cũng được lưu trữ trong các bảng từ khoá và bảng chỉ mục dành riêng cho từ
Hình 30: Kết quả tìm kiếm theo nội dung
khoá. Cách xây dựng các bảng chỉ mục, xây dựng bảng từ khóa và cách thức xây dựng
thuật toán tìm kiếm hoàn toàn tương tự như cách xây dựng thuật toán tìm kiếm thao nội
dung.
Sắp xếp các bài theo những lựa chọn khác nhau
Có nhiều lựa chọn sắp xếp cho phép lựa chọn các cách phù hợp với yêu cầu của
người sử dụng. Mỗi một cách sắp xếp khác nhau chẳng qua xuất ra màn hình danh sách
các bài theo các cách khác nhau. Do vậy, trong chương trình sẽ có nhiều thủ tục xuất các
bài gửi ra màn hình trên cùng một trang, khi người sử dụng chọn một trong các cách sắp
xếp thì trang web này sẽ được chạy lại và có cách xuất hiện bài viết theo thủ tục khác.
Khi có một tác động từ người dùng, chương trình sẽ xuất ra một biến “sapxep” đi
kèm với địa chỉ của trang hiển thị bài
select name="list"
onchange="window.open(this.options[this.selectedIndex].value,'_top');
list.options[0].selected=true" style="FONT-FAMILY: .VNTime; FONT-SIZE: 10pt">
[Chọn cách
Sxếp]
Chủ đề
Tiêu đề
Câu hỏi
Thời gian
Người gửi
Bình thường
Với cách truyền biến kèm theo địa chỉ cho phép ta chỉ cần sử dụng một trang hiển
thị mà có thể dùng nhiều cách hiển thị bài khác nhau vào từng thời điểm khác nhau.
Ví dụ: Người sử dụng chọn cách hiển thị “Câu hỏi” thì trang sẽ chạy lại trang
dsachbai.asp nhưng có kèm theo biến sapxep = cauhoi. Trang dsachbai.asp dùng
Request.QueryString(“sapxep”) sẽ lấy được biến sapxep và dùng biến này để chọn ra
những bài là câu hỏi để hiển thị.
III. XỬ LÝ YÊU CẦU CỦA NGƯỜI ĐÃ ĐĂNG KÝ
Đối với người đã đăng ký ngoài các quyền như một người sử dụng chưa đăng ký
như: gửi bài, xem bài, tìm kiếm ... còn có thêm được chức năng ghi nhớ bài
Ghi nhớ bài
Khi người sử dụng có đăng ký trên hệ thống một tên truy nhập thì hệ thống cho phép
người sử dụng sau khi login vào hệ thống có thể lưu lại được những bài mà họ cảm thấy
cần phải nhớ. Hệ thống dựa vào tên truy nhập sẽ phân biệt được bài nào là của tên truy
nhập nào lưu trữ, lần sau nếu người sử dụng truy nhập hệ thống đúng tên truy nhập và mật
khẩu thì hệ thống cho phép người đó xem các bài của mình đã lưu lần trước. Tác dụng lớn
của phương pháp này là giúp người sử dụng có thể đọc ngay được những bài mà họ chú ý
thay vì phải tìm kiếm trên hàng trăm bài trên diễn đàn.
Các bài được chọn sẽ được lưu vào trong bảng ghi nhớ sau:
Tên trường Kiểu dữ liệu Giải thích
MãngườiSD Number
Mãbàigửi Number
Sau khi người sử dụng login chương trình sẽ tự động thiết lập một số biến Session
để lưu trữ thông tin của người sử dụng bao gồm:
- Mã người sử dụng
- Tên người sử dụng
Nhờ các biến này mà trong suốt phiên làm việc của người sử dụng chương trình luôn
luôn sử dụng được biến “mã người sử dụng” do vậy khi người sử dụng xem một bài nào
đó muốn lưu lại bài đó thì kết hợp giữa biến Session(“manguoiSD”) và mã của bài gửi đó
và lưu hai giá trị này vào bảng trên.
Để bảo mật thông tin sau khi người sử dụng chủ động logout thì biến
Session(“manguoiSD”) sẽ được xoá.
IV. XỬ LÝ YÊU CẦU CỦA NGƯỜI QUẢN LÝ:
Đối với người quản lý ngoài các chức năng giống như người sử dụng chưa đăng ký,
người sử dụng đã đăng ký còn có những chức năng khác nhằm duy trì cho hệ thống hoạt
động tốt hơn.
1. Xoá bài
Để một quản lý được nội dung của diễn đàn, hệ thống cho phép người quản lý diễn
đàn có thể xoá bất cứ bài nào trên diễn đàn.
Thuật toán xoá bài thực hiện như sau:
<Từ danh sách các bài
Chọn bài để xoá {lấy được mãbài}
Dò tìm tất cả các bài trả lời cho bài đó {thuật toán tìm bài
con}
Xoá bài & xoá luôn cả bài con
Xoá mãbài đó trong bảng chỉ mục
Hình 31: Trang xoá bài
2. Thêm người sử dụng
Người quản lý có quyền thêm người sử dụng cũng như thêm người quản lý vào hệ
thống. Để phân biệt được người sử dụng và người quản lý, chương trình chia người sử
dụng thành hai cấp:
Cấp 2: đây là cấp người sử dụng, với người sử dụng loại này có thể thực hiện các
yêu cầu giống như người sử dụng chưa đăng ký đồng thời có thể ghi nhớ bài mà họ ưu
thích.
Cấp 1: đây là cấp quản lý, ngoài quyền giống như một người sử dụng cấp 2 còn có
quyền cao hơn so với người sử dụng cấp 2. Người sử dụng ở cấp này có thể thực hiện
được 5 chức năng của người quản lý đó là: xoá bài, thêm người sử dụng, xoá người sử
dụng, thêm chủ đề cho diễn đàn, xoá chủ đề của diễn đàn.
Hình 32: Trang đăng ký người sử dụng
Thuật toán:
3. Xoá người sử dụng
Để quản lý được số lượng người sử dụng cũng như số lượng người quản lý của hệ
thống. Người quản lý có quyền xoá người sử dụng ra khỏi hệ thống.
Nhận dữ liệu: tênđầyđủ, têntruynhập, mậtkhẩu, email, cấp
If thiếu thông tin then
Báo lỗi
Else
If tên truy nhập trùng tên đã có trước then
Thông báo
Mở lại form đăng ký
Else
Đưa dữ liệu vào cơ sở dữ liệu
End if
End if
Hình 33: Xoá người sử dụng ra khỏi hệ thống
Chương trình cho phép chọn 1 hoặc nhiều người sử dụng để xoá. Mỗi ô checkbox là
một giá trị ứng với mã của người sử dụng tương ứng. Do vậy khi chọn một ô hay nhiều ô
và bấm nút “Xoá User” thì các biến checkbox sẽ được truyền đi và thủ tục xoá người sử
dụng sẽ lấy các biến này để xoá người sử dụng trong bảng của cơ cở dữ liệu.
Tuy nhiên để đảm bảo cho hệ thống hoạt động tốt, đối với trường hợp xoá người sử
dụng cấp một sẽ có một điều khác là: nếu trên hệ thống chỉ còn một người quản lý thì
không cho phép xoá.
4. Thêm chủ đề
Để có thể đáp ứng được nhu cầu trao đổi thông tin về nhiều lĩnh vực khác nhau của
người sử dụng. Chương trình cho phép người quản lý thêm chủ đề cho diễn đàn.
Ví dụ: diễn đàn đã có các chủ đề trao đổi về mạng, Internet-web, lập trình. Nếu
người quản thấy cảm thấy nhu cầu của người sử dụng cần trao đổi các vấn đề về Cơ sở dữ
liệu thì người quản lý có thể thêm chủ đề này vào cơ sở dưc liệu. Hình sau cho phép
người quản lý nhập các thông tin liên quan đến chủ đề.
Thuật toán:
5. Xoá chủ đề
Nếu có thêm chủ đề thì phải có xoá chủ đề, hay những chủ đề đã cũ không còn ai
quan tâm đến thì người quản lý có thể xoá đi.
Nhận dữ liệu về tên chủ đề, giải thích về chủ đề
If thiếu tên chủ đề
Báo lỗi
Else
Kiểm tra trên cơ sở dữ liệu đã có chủ đề chưa
If có
Thông báo trùng chủ đề
Mở lại form đăng ký
Else {thành công}
Đưa vào cơ sở dữ liệu
End if
End if
Để xoá chủ đề chương trình cũng đưa ra một danh sách các bài và cho người quản lý
chọn những bài cần xoá. Mỗi một checkbox chứa giá trị mã chủ để, khi chọn vào đây và
nhắp nút xoá chủ đề thì các biến của checkbox sẽ được truyền đi. Thủ tục xoá chủ đề nhậ
các thông tin về mã chủ đề được xoá và theo đó truy xuất vào cơ sở dữ liệu để xoá các
chủ đề.
Đồng thời với việc xoá chủ đề thì tất cả các bài của chủ đề đó nếu có sẽ được xoá .
Tính bảo mật của hệ thống:
Tất cả các trang web dành cho người quản lý thì chỉ được truy xuất bởi người quản
lý. Do vậy các trang này phải có tính bảo mật. Để thực hiện điều nay ta làm như sau:
Hình 35: Xoá chủ đề
Sau khi người quản lý Login thành công thì thiết lập biến Session(“capNguoiSD”),
biến này tồn tại trong suốt phiên làm việc của người quản lý và tất cả các trang web được
xây dựng cho người quản lý khi được mở sẽ kiểm tra biến session này đầu tiên, nếu biến
này không phù hợp thì không cho mở trang này.
Để đảm bảo tính bảo mật, sau khi sử dụng người quản lý có thể chủ động Logout để
xoá biến Session hoặc sau một khoảng thời gian không sử dụng chương trình thì biến
Session này sẽ tự động được xoá đi
Ví dụ:
Một người sử dụng có đăng ký, sau khi Login sẽ có biến Session(“capNguoiSD”) =
2, thì không thể truy xuất đến các quản lý được vì điều kiện để truy xuất các trang nàyphải
có biến Session(“capNguoiSD”) = 3.
CHƯƠNG 6
KẾT LUẬN, ĐÁNH GIÁ KẾT QUẢ
Tóm tắt nội dung đã thực hiện
Trong suốt thời gian gần ba tháng xây dựng chương trình, căn cứ vào nhiệm đề
cương nhiệm vụ nghiên cứu em đã thực hiện được một số công việc sau đây:
Nghiên cứu các công cụ hỗ trợ cho lập trình
- Web Server
- ASP (active server page)
- Jscript
- VBScript
- ODBC
- DHTML
Kết quả được trình bày trong Chương 2
Phân tích và thiết kế hệ thống
Căn cứ vào dữ liệu thu thập được để xây dựng các thực thể tương ứng
Dựa vào các thực thể đã xây dựng và các thông tin có liên quan để xây dựng mô
hình ý niệm
Dựa vào mô hình ý niệm, xây dựng mô hình quan hệ và xử lý
Kết quả được trình bày trong chương 4
Xây dựng chương trình
Diễn đàn trên Web là một chương trình ứng dụng dựa trên công nghệ web động có
kết nối với cơ sở dữ liệu.
Dựa vào các kết quả phân tích từ yêu cầu của người sử dụng, em đã xây dựng các
trang web nhằm đáp ứng các nhu cầu đó.
Kết quả được trình bày trong Chương 5
Đánh giá kết quả đạt được, những thiếu sót còn tồn tại.
Trong suốt quá trình làm đồ án, nhờ sự tích cực tìm tòi của bản thân cộng với sự
giúp đỡ tận tình của thầy hướng dẫn nên đã đem đạt được một số kết quả sau:
Đã nắm bắt được cách sử dụng các công cụ, các ngôn ngữ lập trình tương đối mới và
áp dụng thành công vào trong chương trình.
Hoàn thành nội dung của yêu cầu đồ án đề ra
Đưa ra được thuật toán quản lý phân cấp các bài viết dễ hiểu, dễ quản lý.
Xây dựng được trang tìm kiếm theo chỉ mục, đây là phương pháp tìm kiếm nhanh và
hiệu quả.
Đảm bảo được tính bảo mật cho các trang thuộc quyền của người quản lý.
Đã đưa được Tiếng Việt vào hầu hết các trang web, trong các form nhập dữ liệu, các
nút trong chương trình, tạo thuận lợi cho người sử dụng.
Tuy nhiên do trình độ và thời gian có hạn nên vẫn còn nhiều thiếu sót tồn tại như:
Trong trang hiển thị bài gửi, nhằm hạn chế số bài hiển thị quá nhiều trên một trang
em đã chia ra cho hiển thị theo tháng, lẽ ra ngoài hiển thị theo tháng còn phải cho hiển thị
thành các trang khác nhau nếu có quá nhiều bài.
Thiếu phần thống kê: theo số người truy cập, theo chủ đề, ngày tháng từ đó giúp cho
người quản lý có thể tổ chức lại diễn đàn cho phù hợp hơn.
Hướng phát triển của đồ án
Xử lý các lỗi chặt chẽ hơn trước khi đưa vào sử dụng.
Về vấn đề tìm kiếm, có thể liên kết đến các địa chỉ khác khi không tìm thấy trên diễn
đàn này. Ví dụ như có thể gửi các yêu cầu đến các Search Engine khác trên mạng Internet
(nếu web server kết nối với Internet) như: Yahoo, AntaVista, InfoSeek...
Xây dựng thêm một số chức năng cho người đăng ký như: nhận được các thông tin
mới, các câu hỏi hay bài trả lời về một đề tài nào đó.
ứng dụng này có tính tổng quát và khá linh hoạt, có thể áp dụng cho nhiều môi trường
người sử dụng khác nhau (cơ quan, trường học...). Tuỳ theo đặc thù của người sử dụng, ta
có thể điều chỉnh lại một số phần để ứng dụng hoàn thiện hơn
Kết luận
Sau thời gian tương đối ngắn vừa phải nghiên cứu những công cụ mới vừa phải lập
trình, em đã hoàn thành đồ án và đã giải quyết các yêu cầu đề ra. Nếu có thêm thời gian
khắc phục và đưa vào thử nghiệm thì ứng dụng sẽ hoàn thiện hơn.
Tuy còn nhiều thiếu sót nhưng em tin rằng với kiến thức mình có được em có thể
phát triển được những chương trình khác lớn hơn.
TÀI LIỆU THAM KHẢO
- Tiến Sĩ Phan Huy Khánh. Phân tích và Thiết kế hệ thống.
- Alex Homer, Andrew Enfield, Christian Gross, Stephen Jakab, Bruce Hartwell,
Darren Gill, Brian Francis. Profestional Active Server Page.
- Gunnit S.Khurana, Balbir S. Khurana. Web DataBase.
- David Gulbransen, Kenrick Rawlings. Dynamic HTML
- Gary Cornell. Learn Visual Basic Scripting Now.
- MSDN. Miscrosoft Developer Network
- Book Online.
MỤC LỤC
Trang
LỜI NÓI ĐẦU
CHƯƠNG 1
Đặt vấn đề ------------------------------------------------------------------------------------------3
I. Giới thiệu chung --------------------------------------------------------------------------------3
II.Hướng xây dựng chương trình -------------------------------------------------------------4
CHƯƠNG 2
Các công cụ trợ giúp -----------------------------------------------------------------------------5
I. Yêu cầu về môi trường làm việc của ứng dụng ------------------------------------------5
II. Các công cụ trợ giúp trong lập trình -----------------------------------------------------6
1. Jscript (Javascript) ---------------------------------------------------------------------------6
2. VBScript (visual basic script) --------------------------------------------------------------6
3. ASP (active server page)--------------------------------------------------------------------6
4. Visual InterDev (visual Internet Development) ----------------------------------------8
5 . DHTML (dynamic html) ------------------------------------------------------------------ 10
CHƯƠNG 3
Phân tích chương trình ------------------------------------------------------------------------- 11
I. Tổng quát về chức năng của diễn đàn trên web ---------------------------------------- 11
II. Các vấn đề cần giải quyết khi xây dựng chương trình ------------------------------- 12
1. Phân cấp ngưòi sử dụng-------------------------------------------------------------------- 12
Sơ đồ qui trình hoạt động của các trang trong ứng dụng web forum ---------- 14
2. Hoạt động cuẩ chương trình --------------------------------------------------------------- 15
CHƯƠNG 4
Phân tích thiết kế hệ thống -------------------------------------------------------------------- 17
I. Những thông tin cần quản lý trên cơ sở dữ liệu ---------------------------------------- 17
II. Phân tích và thiết kế------------------------------------------------------------------------- 18
1. Sơ đồ dòng dữ liệu -------------------------------------------------------------------------- 18
2. Dữ liệu thu thập được ---------------------------------------------------------------------- 21
3. Các cấu trúc kiểu---------------------------------------------------------------------------- 21
Mô hình thực thể kết hợp ------------------------------------------------------------------- 24
Mô hình quan niêm dữ liệu----------------------------------------------------------------- 24
Chuyễn đổi mô hình quan niệm dữ liệu thành mô hình logic dữ liệu tệp -------- 25
CHƯƠNG 5
Xây dựng chương trình------------------------------------------------------------------------- 26
I. Quản lý các bài gởi lên diễn đàn ----------------------------------------------------------- 26
II. Xữ lý yêu cầu của người chưa đăng ký -------------------------------------------------- 29
1. Xem bài -------------------------------------------------------------------------------------- 30
2. Xem nội dung một bài --------------------------------------------------------------------- 32
3. Gởi bài --------------------------------------------------------------------------------------- 32
4. Đăng ký trỏ thành thành viên của forum ------------------------------------------------ 33
5. Tìm kiếm ------------------------------------------------------------------------------------- 34
III. Xử lý yêu cầu của người đăng ký -------------------------------------------------------- 39
IV. Xử lý yêu cầu của ngưòi quản lý --------------------------------------------------------- 40
1. Xoá bài --------------------------------------------------------------------------------------- 40
2. Thêm người sử dụng ----------------------------------------------------------------------- 41
3. Xoá người sử dụng ------------------------------------------------------------------------- 42
4. Thêm chủ đề --------------------------------------------------------------------------------- 42
5. Xoá chủ đề ----------------------------------------------------------------------------------- 43
Tính bảo mật cuẩ hệ thống ----------------------------------------------------------------- 44
CHƯƠNG 6
Kết luận, đánh giá kết quả --------------------------------------------------------------------- 45
Tài liệu tham khảo ------------------------------------------------------------------------------ 47
Các file đính kèm theo tài liệu này:
- Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - XÂY DỰNG DIỄN ĐÀN TRÊN WEBSITE.pdf