Tất nhiên nó sẽ mở rộng. Điều đó sẽ hoạt động tốt, nó là một cấu trúc thường được sử dụng.
Bao gồm một level_no
. Điều đó sẽ hỗ trợ trong mã, nhưng quan trọng hơn, nó được yêu cầu để loại trừ các bản sao.
Nếu bạn muốn có một cấu trúc thực sự chặt chẽ, bạn cần một cái gì đó giống như khái niệm Unix về inodes.
Bạn có thể gặp khó khăn trong việc tìm hiểu mã bắt buộc để tạo ra hệ thống phân cấp, chẳng hạn như từ product
, nhưng đó là một vấn đề riêng biệt.
Và hãy thay đổi
- (
product_category
))id
tớiproduct_category_id
- (
product
id
tớiproduct_id
-
parent_id
tớiparent_product_category_id
Phản hồi cho nhận xét
-
level_no
. Hãy xem Mô hình Dữ liệu này, nó dành cho cấu trúc Cây thư mục (ví dụ:cửa sổ FlieManager Explorer):Hãy xem bạn có hiểu được không, đó là khái niệm Unix inode. FileName phải là duy nhất trong Node, do đó là chỉ mục thứ hai. Điều đó thực sự đã hoàn thành, nhưng một số nhà phát triển ngày nay sẽ gặp khó khăn khi viết mã cần thiết để điều hướng hệ thống phân cấp, các cấp. Những nhà phát triển đó cần
level_no
để xác định cấp nào trong hệ thống phân cấp mà họ đang xử lý. -
Các thay đổi được đề xuất. Có, nó được gọi là Quy ước Đặt tên Tốt. Tôi cứng nhắc về nó, và tôi xuất bản nó, vì vậy nó là một Tiêu chuẩn đặt tên. Có những lý do cho nó, điều này sẽ trở nên rõ ràng với bạn khi bạn viết một số SQL với 3 hoặc 4 cấp độ nối; đặc biệt là khi bạn đến cùng một phụ huynh theo hai cách khác nhau. Nếu bạn tìm kiếm SO, bạn sẽ tìm thấy nhiều câu hỏi cho điều này; luôn luôn là câu trả lời giống nhau. Nó cũng sẽ được chiếu sáng cao trong mô hình tiếp theo mà tôi viết cho bạn.