EzyPlatform quản lý các liên kết thế nào?
Back To BlogsThiế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:
- link_type: Là kiểu của liên kết ví dụ như
POST,PAGE,CUSTOM_LINK. - 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/worldthay 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. - 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.
- description: Là mô tả của liên kết.
- 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. - source_id: Là id của đối tối nguồn tạo ra liên kết. Từ
source_typevàsource_idbạ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:
- Link: Lớp này ánh xạ với bảng
ezy_links. - LinkRepository: Là giao diện chứa các hàm CRUD tương tác với bảng
ezy_links. - AdminLinkRepository: Là giao diện thừa kế từ
LinkRepositoryđể sử dụng ở admin. - WebLinkRepository: Là giao diện thừa kế từ
LinkRepositoryđể sử dụng ở web. - LinkService: Là giao diện cung cấp các hàm CRUD cơ bản cho quản lý liên kết.
- SaveLinkModel: Chứa dữ liệu liên kết để lưu vào cơ sở dữ liệu.
- LinkModel: Chứa dữ liệu liên kết được lấy ra từ cơ sở dữ liệu.
- DefaultLinkService: Là lớp cài đặt các hàm của
LinkService. - AdminLinkService: Là lớp thừa kế
DefaultLinkServiceđược sử dụng ở admin. - 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:
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.