2009-06-06 37 views
12

Các phương pháp hay nhất để giữ tính toàn vẹn tham chiếu trên nhiều cơ sở dữ liệu là gì? vì không có hàm tích hợpGiữ tính toàn vẹn tham chiếu trên nhiều cơ sở dữ liệu

Hoặc tốt hơn là phân vùng một cơ sở dữ liệu đơn lẻ?

Cập nhật Xem ví dụ của kevin bên dưới. đó là tình huống của tôi. Cơ sở dữ liệu khoảng không quảng cáo của tôi có các bảng tham chiếu đến employeeId trong cơ sở dữ liệu của nhân viên.

Những cơ sở dữ liệu hiện đang được duy trì tại các địa điểm khác nhau (các máy chủ khác nhau)

Trả lời

5

Với 2k05/2k08, bạn nên phân vùng một cơ sở dữ liệu đơn giản hơn. Bạn có tất cả các lợi ích của việc lưu trữ dữ liệu giống như nó nằm trong nhiều cơ sở dữ liệu trong khi có thể sử dụng các chức năng của một cơ sở dữ liệu duy nhất, như các khóa ngoại.

Điều đó đang được nói, bạn không nên giữ mọi thứ trong một cơ sở dữ liệu. Một cách hợp lý khi các bảng nhóm không phù hợp với nhau, tôi thường tách chúng thành cơ sở dữ liệu riêng của chúng. Ví dụ, tôi sẽ không nhất thiết phải kết hợp đặt một cơ sở dữ liệu hệ thống đơn đặt hàng và cơ sở dữ liệu quản lý nhân viên với nhau. Tôi cho rằng có thể có lý do để làm như vậy, nhưng tôi chắc chắn bạn có được điểm của tôi về các cửa hàng dữ liệu phân tách hợp lý khi thích hợp.

Điều bạn nên xem là cơ sở dữ liệu tương tác bao nhiêu. Nếu có rất nhiều lĩnh vực mà sẽ tham gia trên cơ sở dữ liệu, sau đó tôi sẽ nói rằng nó có lẽ là một ý tưởng tốt. Nếu nó có thể là một hoặc hai trường liên kết với bảng nhân viên, thì nó có thể không đáng làm. Lựa chọn khác của bạn là, nếu số lượng tham gia là nhỏ, là nhân đôi các bảng cần thiết vào cơ sở dữ liệu hàng tồn kho, đặc biệt nếu nó là một bảng và hai cơ sở dữ liệu hiện có lớn và khá phức tạp.

+0

đó là trường hợp của tôi. Cơ sở dữ liệu khoảng không quảng cáo của tôi có các bảng tham chiếu đến employeeId trong cơ sở dữ liệu của nhân viên. Các cơ sở dữ liệu này hiện được duy trì tại các vị trí khác nhau (Máy chủ khác nhau) –

0

Tôi đoán nó phụ thuộc vào nhu cầu của bạn, nhưng tôi có lẽ muốn nạc đối với một cơ sở dữ liệu duy nhất. Để làm điều đó trên cơ sở dữ liệu multiplbe bạn cần hỗ trợ giao dịch phân phối.

1

Chắc chắn là tốt hơn để phân chia thành một DB duy nhất. Nếu bạn cần phải làm nó gây nên sẽ giúp (yuck). Bạn không thể chỉ phân vùng DB bằng cách sử dụng lược đồ thay vào đó (ví dụ DB mẫu AdventureWorks là một ví dụ)?

0

Bạn có thể sử dụng trình kích hoạt để thực hiện công việc nhưng ....
Tôi e rằng bạn sẽ tốn rất nhiều thời gian để đảm bảo mọi thứ hoạt động. Một cơ sở dữ liệu duy nhất với một số bảng được phân đoạn có thể tốt hơn. Bạn có thực sự cần nhiều cơ sở dữ liệu hay chỉ một cơ sở dữ liệu với nhiều nhóm tệp được trải rộng trên các thiết bị vật lý? Bạn cũng có thể xem xét tùy chọn đó. Matej

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