Liên kết (link) là một thành phần cực kỳ quan trọng của các dự án website để phục vụ cho mục đích SEO hay các mục đích khác. Chính vì điều này EzyPlatform đã đưa quản lý các liên kết vào trong phần core của mình.

Thiết kế cơ sở dữ liệu

Để quản lý các liên kết EzyPlatform sử dụng một bảng duy nhất có tên ezy_links với mã nguồn khởi tạo như sau:

CREATE TABLE IF NOT EXISTS ezy_links (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `link_type` varchar(25) COLLATE utf8mb4_unicode_520_ci,
  `link_uri` varchar(500) NOT NULL,
  `image_id` bigint unsigned NOT NULL DEFAULT 0,
  `description` varchar(12000) COLLATE utf8mb4_unicode_520_ci,
  `source_type` varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT 'UNKNOWN',
  `source_id` bigint unsigned NOT NULL DEFAULT 0,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `key_link_uri` (`link_uri`),
  INDEX `link_type` (`link_type`),
  INDEX `source_type_id` (`source_type`, `source_id`),
  INDEX `source_type` (`source_type`),
  INDEX `created_at` (`created_at`),
  INDEX `updated_at` (`updated_at`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

Ý nghĩa một số trường có trong bảng này như sau:

  1. link_type: Là kiểu của liên kết ví dụ như POST, PAGE, CUSTOM_LINK.
  2. link_uri: Là đường dẫn của liên kết. Cần lưu ý rằng bạn nên lưu đường dẫn ở dạng /hello/world thay vì https://abc.com/hello/world để có thể dễ dàng triển khai trên môi trường nào cũng được.
  3. image_id: Là id của ảnh gắn với liên kết, ví dụ ảnh của bài viết, ảnh đại diện.
  4. description: Là mô tả của liên kết.
  5. source_type: Là loại nguồn tạo ra liên kết, thường sẽ là tên các bảng ví dụ ezyarticle_posts, ezyarticle_terms.
  6. source_id: Là id của đối tối nguồn tạo ra liên kết. Từ source_typesource_id bạn sẽ có thể truy vết được liên kết nào đã được ra từ một nguồn.

Thiết kế lớp

Tương ứng với bảng ezy_links, EzyPlatform sẽ sinh ra các lớp sau để quản lý các liên kết:

EzyPlatform quản lý các liên kết thế nào - thiet ke lop.png
  1. Link: Lớp này ánh xạ với bảng ezy_links.
  2. LinkRepository: Là giao diện chứa các hàm CRUD tương tác với bảng ezy_links.
  3. AdminLinkRepository: Là giao diện thừa kế từ LinkRepository để sử dụng ở admin.
  4. WebLinkRepository: Là giao diện thừa kế từ LinkRepository để sử dụng ở web.
  5. LinkService: Là giao diện cung cấp các hàm CRUD cơ bản cho quản lý liên kết.
  6. SaveLinkModel: Chứa dữ liệu liên kết để lưu vào cơ sở dữ liệu.
  7. LinkModel: Chứa dữ liệu liên kết được lấy ra từ cơ sở dữ liệu.
  8. DefaultLinkService: Là lớp cài đặt các hàm của LinkService.
  9. AdminLinkService: Là lớp thừa kế DefaultLinkService được sử dụng ở admin.
  10. WebLinkService: Là lớp thừa kế DefaultLinkService được sử dụng ở web.

Ứng dụng cho SEO

Như đã nói ở trên, quản lý liên kết cực kỳ hữu ích cho SEO. Bạn có thể cài đặt EzySEO Plugin và nó có thể tự động tạo ra sitemap kiểu thế này:

Screenshot 2024-12-24 at 16.49.01.png

Bạn có thể tham khảo đường dẫn: https://ezyplatform.com/api/v1/sitemaps.

Bạn có thể lấy đường dẫn sitemaps được tạo ra và cung cấp cho google search console để SEO được tốt hơn.

Tổng kết

Quản lý các liên kết là một công việc rất quan trọng đặc biệt là cho SEO để tạo ra sitemaps cung cấp cho các nền tảng tìm kiếm và dữ liệu. EzyPlatform đã đóng gói tính năng này vào phần core và các nhà phát triển sẽ không cần phải đau đầu vì nó nữa.