2016-02-23 37 views
5

Tôi có cơ sở dữ liệu bán hàng nơi tôi muốn nhận chi tiết khách hàng dựa trên các lựa chọn danh mục này. Tôi có khoảng 15 danh mục và cơ sở dữ liệu khách hàng của tôi là 5 triệu bản ghi. Mỗi sản phẩm có thể thuộc nhiều loại. Tôi cần truy xuất tên khách hàng dựa trên danh mục được chọn. Đây có phải là cách tiếp cận tốt hơn để đặt tất cả các danh mục này dưới dạng cột hoặc tạo bảng riêng cho sản phẩm và danh mục và sau đó tham gia nội bộ? Tôi muốn về hiệu suất mà một trong những cách tiếp cận tốt hơn.cơ sở dữ liệu cột

Cách tiếp cận 1:

option1 đây 1 nói rằng sản phẩm đang được thể loại đó.

Phương pháp 2:

approach2

+1

Cách tiếp cận số 2 tốt hơn. Nó có thể mở rộng, nếu bạn nhận được các danh mục mới trong cách tiếp cận, hơn bạn nên thay đổi cấu trúc bảng. Nó cũng thích hợp theo cách quan hệ. Và bạn có thể lấy bàn từ, tiếp cận 1 với sự giúp đỡ của xoay vòng. – gofr1

+0

cảm ơn gofr1. Nhưng vấn đề của tôi là hiệu suất.Khi 5 triệu bản ghi sẽ không thành vấn đề? – aditya

+0

@aditya, không. SQL Server xử lý 'JOIN' một cách hiệu quả, đặc biệt là với chỉ mục thích hợp. –

Trả lời

2

Cách tiếp cận thứ hai (Approach 2) là giải pháp tốt hơn nhiều hơn là tạo bảng duy nhất bởi vì nó không phải là cần thiết rằng tất cả các sản phẩm có thể có tất cả các loại trong cách tiếp cận một bạn đang đặt không gian bằng cách tạo các cột riêng biệt mặc dù có tồn tại hay không, và nếu trong tương lai nếu một danh mục được tăng lên, bạn sẽ phải thay đổi cấu trúc hiện tại của bảng và nó sẽ là nhiệm vụ khó khăn.

Có Tham gia sẽ hơi chậm nhưng nếu bạn tạo chỉ mục đúng cách, nó sẽ hoạt động tốt hơn nhiều.

Các vấn đề liên quan