Nơi tôi làm việc, chúng tôi có ESBmà 6 ứng dụng khác nhau (hoặc tôi nên nói "điểm cuối") được kết nối. 6 ứng dụng này hoạt động với 3 lược đồ Oracle khác nhau trên 2 trường hợp cơ sở dữ liệu. Một số ứng dụng này cùng tồn tại trong cùng một lược đồ không phải vì chúng có liên quan mà vì cơ sở hạ tầng cơ sở dữ liệu của chúng tôi được quản lý bởi nhà cung cấp bên ngoài và có được một lược đồ mới chỉ mất mãi mãi (tất nhiên, chúng tôi không có quyền truy cập DBA) thực sự mất nhiều thời gian đến mức tại một thời điểm chúng tôi đã nghĩ đến việc sử dụng lại một lược đồ hiện có "tạm thời" để có thể tiếp tục phát triển. Để thực thi "tách" dữ liệu, tên bảng được thêm tiền tố, ví dụ "CST_" cho khách hàng. Ngoài ra, chúng tôi phải làm việc với một lược đồ mà vì một số lý do hợp lệ, chúng tôi không thể thay đổi tuyệt đối ... Thật lạ lùng tôi biết. Tất nhiên, như nó luôn xảy ra, "tạm thời"
Các ứng dụng khác nhau của chúng tôi kết nối với lược đồ cơ sở dữ liệu tương ứng của chúng và hoạt động với các gói PL / SQL của riêng chúng và chúng tôi tuyệt đối cấm bản thân tương tác trực tiếp với các bảng / dữ liệu nằm ngoài miền ứng dụng của chúng tôi.
Khi một trong các ứng dụng được kết nối với ESB cần thông tin bên ngoài miền của nó, nó sẽ gọi dịch vụ liên quan trên ESB để lấy dữ liệu, ngay cả khi thông tin đó thực tế nằm trong cùng một lược đồ, về lý thuyết chỉ cần một tuyên bố tham gia nhỏ trong một trong những yêu cầu SQL .
Chúng tôi làm điều đó để có thể phân chia miền ứng dụng của chúng tôi thành các lược đồ / cơ sở dữ liệu khác nhau và để các dịch vụ trên ESB vẫn hoạt động bình thường khi nó xảy ra (sắp đến Giáng sinh, chúng tôi sẽ xử lý các ngón tay)
Bây giờ, điều này có thể trông lạ và khủng khiếp từ bên ngoài nhưng có những lý do cho điều đó và tôi chỉ muốn chia sẻ kinh nghiệm cụ thể này để cho bạn thấy rằng một hoặc nhiều cơ sở dữ liệu không quan trọng. Đợi đã, nó là! , vì nhiều lý do (+1 cho Scott Whitlock, hãy xem đoạn cuối về sao lưu và điều đó khiến tôi gặp rắc rối) Nhưng điều quan trọng không kém là tôi nghĩ rằng các dịch vụ SOA của bạn được thiết kế đúng, ít nhất đó là ý kiến của tôi và tôi Tôi không phải là một DBA. Cuối cùng, tất cả các cơ sở dữ liệu của bạn thuộc về "kho dữ liệu doanh nghiệp" của bạn, phải không?
Cuối cùng, tôi sẽ không viết lại đoạn cuối của Scott Whitlock, đặc biệt là đoạn này
Tôi sẽ không tách các bảng thành các cơ sở dữ liệu vật lý khác nhau chỉ vì các mối quan tâm riêng biệt.
là thực sự siêu quan trọng. Đừng làm điều đó nếu không có lý do.