2009-07-11 27 views
8

tôi làm việc với một ứng dụng doanh nghiệp và đã nhặt một số lời khuyên cho việc thiết kế DBLời khuyên cho việc thiết kế cơ sở dữ liệu cấp độ doanh nghiệp

  1. Tất cả các bảng nên có các lĩnh vực sau đây giúp trong đường mòn kiểm toán - LastChangedBy, LastChanged, LastChangedPage
  2. Tất cả các thủ tục được lưu trữ của bạn có SQL động phải có tham số @bDebug. Theo mặc định nó được đặt thành 0. Nếu nó được đặt thành 1, in ra câu lệnh SQL động và điều này sẽ thực sự hữu ích trong việc gỡ lỗi.
  3. Đối với SP CRUD, có cách cập nhật một phần bảng. Nếu bảng của bạn có 10 trường và trong một trong các SP, bạn quan tâm đến việc cập nhật chỉ 5 trường, có một lớp trừu tượng để làm điều này.

Bất kỳ mẹo hữu ích nào khác mà bạn có thể nghĩ đến?

EDIT: Cảm ơn tất cả các câu trả lời. Tôi vẫn đang tìm kiếm một câu trả lời có thể cung cấp một liên kết đến các mẹo/thủ thuật/chiến lược cho DB Design.

+1

Câu hỏi hay. – JoshJordan

Trả lời

0

Theo ý kiến ​​của tôi, bạn sẽ yêu cầu CreatedBởiTạo các trường.

+0

@rafek - Trong ứng dụng của chúng tôi, chúng tôi lưu trữ các CreatedBy như LastChangedBy và cùng với các lĩnh vực tạo ra là tốt. – Nick

+0

Sau đó, sau khi cập nhật trên bản ghi đó, bạn không có thông tin về người sáng tạo ban đầu của nó. – rafek

4

Cho # 1: Di chuyển đến SQL Server 2008 và chỉ bật Thay đổi thu thập dữ liệu. Nếu bạn thực sự cần phải theo dõi các đường mòn kiểm tra chi tiết, tính năng này một mình sẽ biện minh cho chi phí.

Đối với # 2: Bất kỳ thủ tục được lưu trữ nào có sql động sẽ tự động được quản lý bí mật kép (ví dụ: được phép, nhưng phải trải qua nhiều cấp độ xem xét mã để đảm bảo không có cách nào tốt hơn để thực hiện) .

1

Khi nói đến sức mạnh của web, tốt hơn hết là không bao giờ xóa bất kỳ thứ gì. Do đó có một ngày bị xóa mà bạn chỉ có thể loại trừ các đối tượng đã bị "xóa" khỏi các tìm kiếm của bạn. Điều này cũng giúp khách hàng điên cuồng vô tình xóa tài khoản của họ. Rõ ràng điều này không nên được sử dụng trong mọi lĩnh vực.

+0

Việc bỏ qua một trường dòng này trên cơ sở dữ liệu có thể làm cho mọi thứ trở nên dễ dàng hơn. Tôi đã tìm thấy hầu hết các giải pháp cần cờ kiểu "không sử dụng lại" để dữ liệu cũ có thể được tìm kiếm, nhưng mục nhập mới không thể sử dụng lại ID cũ, v.v. – Spence

+0

Vì lý do hiệu suất, trên nền tảng quy mô lớn, bạn có thể muốn thực hiện việc này hơn nữa bằng cách thực hiện phân vùng bảng để tách bạn sống và xóa dữ liệu. Bạn cũng có thể xem xét việc triển khai cơ sở dữ liệu lưu trữ. –

1

Một vài suy nghĩ đó ngay lập tức mùa xuân trong tâm trí khi làm việc với cơ sở dữ liệu rất lớn (VLDB):

bạn nên thực hiện phân vùng bảng?

Bảng cơ sở dữ liệu lớn, với hàng triệu bản ghi, có thể hưởng lợi từ phân vùng bảng.

  • Tính khả dụng của SQL Server Tính năng này bị hạn chế sử dụng Enterprise Edition.
  • Khả năng áp dụng phụ thuộc vào phần cứng nền tảng của bạn và tính khả dụng của của khóa phân vùng thích hợp trong dữ liệu bảng.

Bảng được truy cập thường xuyên nhất của tôi là gì?

Cân nhắc việc tách bởi Filegroup tức là đặt bảng Khách hàng trên một bảng Filegroup và bảng Giao dịch trên một bảng Filegroup và Transaction khác. Điều này cho phép SQL Server tạo nhiều luồng để truy cập tệp tạo khả năng tuần tự I/O.

Sau đó, xem xét cấu trúc đĩa vật lý cơ bản, tức là LUN riêng biệt cho từng Nhóm tệp.

Vạch ra Indexing linh hoạt chiến lược

Bạn sẽ không có nghi ngờ đã có một chiến lược lập chỉ mục trong tâm trí tuy nhiên cho các nền tảng VLDB này nên được thường xuyên xem xét. Khi khối lượng dữ liệu tăng lên và phân phối dữ liệu thay đổi để có thể thực hiện kế hoạch cho truy vấn dữ liệu của bạn. Bạn nên lập kế hoạch cho nhu cầu thường xuyên xem xét chiến lược lập chỉ mục của mình.

1

Các trường LastChangedBy etc. khá vô ích. Nếu bạn thực sự cần một đường mòn kiểm toán, bạn cần các bảng kiểm toán riêng biệt chi tiết các thay đổi và duy trì lịch sử kiểm toán. Nếu bạn không cần một đường mòn kiểm toán, các trường LastChangedBy vv chỉ được thêm vào làm việc không có giá trị kinh doanh.

0

Ngày phải được lưu trữ ở định dạng Utc và được chuyển đổi thành giờ địa phương tại ứng dụng khách.

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