Xóa một cột khỏi một bảng trong sản xuất


8

Chúng ta có một tình huống cần thay đổi mối quan hệ giữa 2 bảng từ m: 1 thành m: n .

Vì vậy, chúng ta cần tạo một bảng tham chiếu chéo ở giữa hai bảng đó.

Sau khi di chuyển tất cả dữ liệu hiện có từ bảng "con" sang bảng Tham chiếu chéo, việc xóa cột khóa ngoài ban đầu trong bảng con có phải là một ý tưởng tồi không?

Nếu chúng ta để nó ở đó, về cơ bản chúng ta có nợ kỹ thuật. Nhưng tôi không phải là một dba và không nắm bắt được ý nghĩa của việc xóa một cột khỏi bảng. (Tôi biết điều đó là có thể, nhưng nó có phải là một ý tưởng tồi không? Cơ sở dữ liệu của tôi có ghét tôi không?)

Cảm ơn

Câu trả lời:


5

Không biết tất cả các cấu trúc của bảng của bạn, tôi bị giới hạn trong lời khuyên của tôi. Tuy nhiên, không, cơ sở dữ liệu của bạn sẽ không vẽ sơ đồ của bạn nếu bạn xóa một cột trong các trường hợp sau (không có nghĩa là toàn diện):

  1. Bạn vẫn sử dụng khóa cơ sở dữ liệu để ánh xạ kích thước của mình.
  2. Các chỉ mục mới của bạn trên bảng Thứ nguyên mới này sẽ bao gồm đúng các chỉ mục khi cần.
  3. Bạn quản lý số lượng chỉ mục này để không làm quá tải Chèn / Cập nhật

Thiết kế mới của bạn có hai Bảng kích thước và bảng Fact

  • Đây là lý do tại sao nó đi từ m: 1 đến m: n với bảng "tham chiếu chéo". Chúng tôi gọi đây là một chiều khác.

Thiết kế thực sự thực hiện Chuẩn hóa để đạt được điều này

  • Bằng cách loại bỏ một phụ thuộc, nhóm của bạn sẽ được trang bị tốt hơn để truy xuất Sự kiện có thể chuyển đổi cách xử lý dữ liệu của bạn theo cách có ý nghĩa hơn.

Lưu ý về kích thước và sự kiện

  • Kích thước cho bối cảnh mô tả

Kích thước cung cấp cho những người, những gì, ở đâu, khi nào, tại sao và làm thế nào bối cảnh của xung quanh một sự kiện quy trình kinh doanh. Các bảng kích thước chứa các thuộc tính mô tả được sử dụng bởi các ứng dụng BI để lọc và nhóm các sự kiện. Với hạt của một bảng thực tế chắc chắn, tất cả các kích thước có thể có thể được xác định.

Bất cứ khi nào có thể, một thứ nguyên nên có giá trị duy nhất khi được liên kết với một hàng thực tế nhất định . Các bảng kích thước đôi khi được gọi là linh hồn trực tuyến của kho dữ liệu vì chúng chứa các điểm nhập cảnh và nhãn mô tả cho phép hệ thống DW / BI được sử dụng để phân tích kinh doanh. Một lượng nỗ lực không cân xứng được đưa vào quản trị dữ liệu và phát triển các bảng thứ nguyên vì chúng là các trình điều khiển của trải nghiệm BI của người dùng.

  • Sự kiện cho phép đo

Sự kiện là các phép đo kết quả từ một sự kiện quy trình kinh doanh và hầu như luôn luôn là số. Một hàng trong bảng thực tế có mối quan hệ một đối một với một sự kiện đo lường như được mô tả bởi hạt của bảng thực tế . Do đó, một bảng thực tế tương ứng với một sự kiện có thể quan sát được, và không phù hợp với yêu cầu của một báo cáo cụ thể . Trong một bảng thực tế, chỉ những sự kiện phù hợp với hạt khai báo được cho phép . Ví dụ: trong giao dịch bán lẻ, số lượng sản phẩm được bán và giá mở rộng của nó là sự thật tốt, trong khi lương của người quản lý cửa hàng không được phép.

Kỹ thuật mô hình hóa chiều Kimball

Đề nghị của tôi là nhóm thiết kế nên biết rằng việc thực thi các quy tắc trong cơ sở dữ liệu là tốt nhất, trừ khi nó làm tổn hại đến hiệu suất. Tuy nhiên, tôi không biết kích thước hoặc định lượng của các câu lệnh DDL của bạn để trả lời đầy đủ điều này.

Nhưng hãy yên tâm rằng đây sẽ là một thay đổi tích cực cho hệ thống của bạn vì bây giờ SQL Server sẽ không phải thông qua tất cả dữ liệu bổ sung đó để truy xuất những gì thực sự quan trọng.


Cảm ơn câu trả lời toàn diện. Tốt để biết cơ sở dữ liệu sẽ có thể xử lý nó. Có vẻ như một hoạt động đau thương hơn nhiều mà xóa các hàng. Tôi sẽ có các chỉ mục, vv đi đầu trong tâm trí của tôi khi lập kế hoạch cho kịch bản để thực hiện thay đổi này. Tất nhiên, chúng tôi sẽ có bản sao lưu và chiến lược rollback.
onefootswill

5

Tôi biết điều đó là có thể, nhưng nó là một ý tưởng tồi? Cơ sở dữ liệu của tôi sẽ ghét tôi vì nó?

Tôi không thể nói cho cơ sở dữ liệu của bạn nhưng tôi sẽ ghét bạn vì nó :-)

Cột kế thừa sẽ chứa dữ liệu dư thừa sau khi thay đổi. Điều này có thể dẫn đến dữ liệu xung đột nếu cột cũ và bảng xref mới không được duy trì nhất quán với nhau. Hãy xem xét các nhà phát triển không quen thuộc với các khoản nợ kỹ thuật có thể làm hỏng cơ sở dữ liệu một cách hợp lý.

Tôi khó có thể nghĩ ra lý do tại sao người ta không nên xóa cột và mối quan hệ. Điều đó cũng sẽ đảm bảo tất cả các mã phụ thuộc đã được thay đổi đúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.