Gần đây tôi đã chia một bảng cơ sở dữ liệu rất lớn thành các bảng nhỏ hơn, dễ quản lý và phần lớn tôi hài lòng với công việc của mình và tôi cảm thấy dữ liệu được chuẩn hóa đúng cách.Chuẩn hóa cơ sở dữ liệu
Nhưng có một ngoại lệ cho điều này. Các bảng được đề cập đến từ một cơ sở dữ liệu sản phẩm lưu trữ thông tin về (bạn đoán nó) các sản phẩm mà công ty bán. Tôi đã tách nhiều thông tin thành hai bảng: ProductBase
và ProductBasePackaging
.
Những bảng này chứa ô thông tin có liên quan đến số phần cơ sở thay vì một sản phẩm riêng lẻ (có nhiều sản phẩm cho mỗi số cơ sở).
ProductBase
chứa khá thông tin chung như MarketingCopy
, Keywords
vv và cũng thông tin về vật liệu xây dựng ví dụ, thành phần, vv
Và ProductBasePackaging
dĩ nhiên nắm giữ dữ liệu về đóng gói.
Bây giờ tôi đang viết ứng dụng để thao tác dữ liệu, tôi bắt đầu tự đoán thứ hai. Có vẻ như tôi đã làm cho bản thân mình khó hơn bây giờ mà tôi phải theo dõi nhiều bảng sử dụng cùng một khóa (số phần cơ sở). Hay tôi có quyền tách chúng ra như vậy và có thể tiến thêm một bước nữa và tách riêng việc xây dựng thành bảng riêng của nó?
Tôi khá thành thạo trong việc sử dụng sql nhưng đây là lần đầu tiên tôi thực sự phải thiết kế cấu trúc cơ sở dữ liệu, hãy để cơ cấu lại cơ sở dữ liệu hiện có lớn. Vì vậy, về cơ bản những gì tôi yêu cầu là tôi nên có nhiều bảng với cùng một khóa được phân cách bằng loại dữ liệu hoặc giữ mọi thứ với nhau trong bảng duy nhất mà tôi có thể tham chiếu mọi thứ tôi cần từ một bảng bằng cùng một khóa?
Xin lỗi tôi biết đó là rất nhiều thứ để đọc, tôi hy vọng điều đó có ý nghĩa và cảm ơn tất cả những ai đã vượt qua!
+1 Tôi đồng ý về ** lượt xem **. OP cũng nên lưu ý rằng việc truy vấn các bảng 'JOIN'ed có thể nhanh hơn nhiều so với một bảng phẳng nếu bạn đã hủy trùng lặp hiệu quả. – Matthew
+1. Có vẻ như O.P. đã hiểu đúng về nó. Các sản phẩm là các vật dụng cá nhân, phải không? Nhưng chúng được đưa vào các SKU khác nhau để bán. Gói 2,4,8, v.v. Có lẽ bao bì nhà đặc biệt cho Walmart, vv Bạn đã có (ít nhất) hai thực thể riêng biệt ở đây. –
@Nicholas vâng bạn có nó đúng. Nhưng bạn có thể có thể xây dựng trên các thực thể riêng biệt trong ví dụ của bạn? – Nick