Hướng dẫn phân tích cơ sở dữ liệu cho Website Blog
Đăng lúc: 08:42 AM - 17/11/2022 bởi Charles Chung - 2679Trong bài viết này tôi sẽ hướng dẫn các bạn cách phân tích và thiết kế cơ sở dữ liệu cho một website blog đơn giản dựa vào các yêu cầu của khách hàng, bài viết có video phân tích và tạo cơ sở dữ liệu trên SQL Server.
Đề bài: Xây dựng website blog chia sẻ kiến thức tổng hợp (blog88.com)
1. Yêu cầu của khách hàng
- Trang chủ blog:
- Header (full width) hiển thị logo blog, ô tìm kiếm
- Banner (full width) hiển thị slide show các ảnh ứng với các bài viết do quản trị chỉ định, khi kích vào ảnh sẽ link tới 1 bài viết đó.
- Phần nội dung bên dưới chia làm 2 cột theo tỷ lệ 3:9
- Cột 1 hiển thị chủ đề bài viết theo cấu trúc menu đa cấp.
- Cột 2 hiển thị danh mục bài viết sắp xếp theo ngày tháng giảm dần có phân trang, 10 bài trên 1 trang.
- Nếu chủ đề được chọn thì hiển thị bài viết theo chủ đề chọn, bài viết được hiển thị gắn gọn gồm tiêu đề, ngày giờ đăng, ai đăng, hình ảnh, hiển thị có phân trang theo cấu trúc 5x3 (5 hàng, mỗi hàng 3 bài).
- Nếu bài viết được chọn thì hiển thị nội dung chi tiết bài viết gồm có các thông tin cụ thể như tiêu đề, ngày giờ tạo, ai là người tạo, nội dung mô tả ngắn gọn, nội dung đầy đủ, hình ảnh, thẻ tìm kiếm, ở cuối bài viết sẽ hiển thị các thẻ tìm kiếm (kích vào thẻ tìm kiếm sẽ hiển thị các bài viết có chứa thẻ đó, trình bày giống phần hiển thị theo chủ đề), bên dưới người xem có thể comment bài viết bằng facebook, chia sẻ bài viết lên facebook, cuối cùng sẽ là mục các bài viết liên quan (hiển thị 5 bài đăng trước bài hiện tại)
- Áp dụng các kỹ thuật SEO cơ bản cho các bài viết.
- Phần footer:
- Hiển thị các thông tin liên hệ, link liên kết mạng xã hội,....
- Trang quản trị gồm:
- Đăng nhập(chỉ có quản trị và biên tập viên mới đăng nhập vào module này)
- Quản lý thông tin tài khoản, chia làm 2 quyền
- Quản trị có quyền cao nhất với mọi tài nguyên trên web, duyệt bài viết trước khi đăng.
- Biên tập viên có quyền tạo bài viết, xem, sửa, xóa bài của mình và quản lý các tài nguyên mình tạo ra.
- Tài khoản gồm các thông tin cơ bản (Tên đăng nhập, mật khẩu, họ và tên, email, picture, ngày sinh, loại tài khoản, tình trạng)
- Quản lý bài viết
- Hiển thị bài viết theo danh mục đa cấp
- Thêm, xóa, sửa danh mục và bài viết (phải có phần editor để thuận tiện cho soạn thảo)
- Tìm kiếm, phân trang.
- Quản lý tài nguyên website
- Thư mục ảnh, tệp tin, cho bài viết (upload, xem, xóa, lấy link ảnh)
- Quản lý phần nội dung trên trang (header, slide show ảnh, footer,...)
2. Nền tảng và công cụ phát triển
- Database sử dụng SQL Server 2016
- Nền tảng (đa nền tảng)
- Công cụ phát triển sử dung ASP.NET Core 3.1, Entity Framework Core
3. Sơ đồ quan hệ thực thể
4. Thiết kế cơ sở dữ liệu
Bảng Accounts (tài khoản)
STT | Tên trường | Kiểu dữ liệu | Ràng buộc | Mô tả |
1 | AccountId | varchar(36) | Primary key | Mã tài khoản |
2 | Username | varchar(64) | unique | Tên đăng nhập |
3 | Password | varchar(64) | not null | Mật khẩu |
4 | FullName | nvarchar(64) | not null | Họ và tên |
5 | Birthday | date | null | Ngày sinh |
6 | varchar(64) | unique null | Hòm thư | |
7 | Picture | nvarchar(512) | null | Ảnh đại diện |
8 | AccountType | int | not null | Loại tài khoản |
9 | AccountStatus | int | not null | Trạng thái |
Bảng Posts (Bài viết)
STT | Tên trường | Kiểu dữ liệu | Ràng buộc | Mô tả |
1 | PosttId | int | Primary key, auto increment | Mã bài viết |
2 | Title | nvarchar(256) | not null | Tiêu đề |
3 | BriefContent | nvarchar(1024) | not null | Mô tả ngắn |
4 | Content | ntext | null | Nội dung |
5 | Picture | nvarchar(512) | null | Ảnh đại diện |
6 | OrderNo | int | null | Thứ tự |
7 | TagSearch | nvarchar(256) | null | Thẻ tìm kiếm |
8 | PostStatus | int | not null | Trạng thái |
9 | PostType | int | not null | Loại bài viết |
10 | AccountId | varchar(36) | Foreign key, not null | Mã tài khoản tạo |
11 | AccountModify | varchar(36) | null | Mã tài khoản sửa |
12 | CreateDate | datetime | not null | Ngày tạo |
13 | LastModify | datetime | null | Ngày sửa |
14 | KeywordSEO | nvarchar(512) | null | Từ khóa seo |
15 | DescriptionSEO | nvarchar(1024) | null | Mô tả seo |
16 | ParentId | int | Foreign key, null | Mã bài viết cha |
Bảng Resources (tài nguyên)
STT | Tên trường | Kiểu dữ liệu | Ràng buộc | Mô tả |
1 | ResourceId | int | Primary key, auto increment | Mã tài nguyên |
2 | ResourceUrl | nvarchar(512) | not null | Url của tài nguyên |
3 | ResourceType | int | not null | Loại tài nguyên |
4 | AccountId | varchar(36) | Foreignt key, not null | Mã tài khoản tạo |
Bảng Components (thành phần trên trang)
STT | Tên trường | Kiểu dữ liệu | Ràng buộc | Mô tả |
1 | ComponentId | int | Primary key, auto increment | Mã thành phần |
2 | Content | ntext | not null | Nội dung |
3 | ComponentType | int | not null | Loại thành phần |
4 | ComponentStatus | int | not null | Trạng thái |
Bảng ImageSlides (hình ảnh trình chiếu)
STT | Tên trường | Kiểu dữ liệu | Ràng buộc | Mô tả |
1 | ImageId | int | Primary key, auto increment | Mã hình ảnh |
2 | ImageUrl | nvarchar(512) | not null | Đường dẫn ảnh |
3 | Link | nvarchar(512) | null | Liên kết |
4 | Description | nvarchar(256) | null | Mô tả |
5 | ImageStatus | int | not null | Trạng thái |
5. Sơ đồ quan hệ giữa các bảng
6. Video hướng dẫn phân tích và code database
Link tải tệp blog88.sql (Google Drive)
Team W3FAIR do thầy Charles Chung dẫn dắt nhận:
- Phân tích nghiệp vụ ứng dụng (BA)
- Thiết kế cơ sở dữ liệu (Design Database)
- Thiết kế website theo chuẩn SEO (Design Web)
- Phát triển ứng dụng Web/Web App/Mobile App trên các nền tảng công nghệ
- Liên hệ ngay
thay lời cảm ơn!
Các bài cũ hơn
- Tìm hiểu Prototype Design Pattern với ví dụ sử dụng ngôn ngữ C# (08:50 AM - 14/11/2022)
- 10 lý do các doanh nghiệp nên chọn ASP.NET Core để phát triển ứng dụng Web (03:50 PM - 10/11/2022)
- Tìm hiểu Builder Design Pattern với ví dụ sử dụng ngôn ngữ C# (11:44 AM - 09/11/2022)
- Truy xuất dữ liệu trong ASP.NET Core 2.1 sử dụng Entity Framework Core(Code First) (05:12 PM - 08/11/2022)
- Tìm hiểu Abstract Factory Design Pattern với ví dụ sử dụng ngôn ngữ C# (08:50 AM - 08/11/2022)