Vì vậy, trước khi tôi đưa ra bất kỳ lời khuyên về cách tốt nhất để thiết kế một sơ đồ lớn, tôi cần phải hỏi một câu hỏi: Liệu một schema lớn thực sự cần thiết?
Bạn đã hỏi có phương pháp phần mềm tốt nào để lập kế hoạch cho các hệ thống lớn hay không. Quả thực có, và một trong những cách tiếp cận tốt nhất để phát triển phần mềm phức tạp là SOA: Kiến trúc hướng dịch vụ. Nếu bạn muốn tự học một chút về các thực hành tốt nhất của SOA ngoài mức cơ sở dữ liệu, tôi khuyên bạn nên xem xét các cuốn sách của Thomas Erls, đặc biệt là SOA của mình: Nguyên tắc thiết kế dịch vụ. Tôi cũng khuyên bạn nên nghe một số bài giảng của Udi Dahan về thiết kế và kiến trúc hướng dịch vụ và định hướng theo miền. Rất nhiều kiến thức tốt có được từ cả hai người này.
Khi nói đến cơ sở dữ liệu, trước khi bạn đi sâu vào và phát triển một lược đồ rất lớn, phức tạp, hãy chắc chắn rằng bạn thực sự, thực sự thực sự cần nó. Trong một môi trường hướng dịch vụ, động lực là xác định ranh giới riêng biệt, không thể phá vỡ giữa các dịch vụ riêng biệt của các vấn đề kinh doanh mà bạn đang cố gắng giải quyết. Một khi bạn đã xác định các ranh giới này, bạn sẽ thấy rằng có các lược đồ nhỏ hơn có thể được tạo ra trong chúng. Đôi khi điều này dẫn đến sao chép dữ liệu, vì thông tin phải được xuất bản từ dịch vụ này sang dịch vụ khác khi cần phải vượt qua ranh giới. Nhưng lợi ích của việc có một vài lược đồ nhỏ hơn, ít phức tạp hơn có thể rất lớn. Bạn có được quyền tự chủ, tính di động, độ linh hoạt và khả năng bảo trì cao hơn bạn có với một lược đồ quái dị duy nhất.
Xem xét SOA, đặc biệt là cách xử lý cơ sở dữ liệu trong kiến trúc hướng dịch vụ. Bài trình bày sau đây của Udi Đại hàn cũng nên cung cấp một số cái nhìn sâu sắc rất hữu ích:
http://www.vimeo.com/5022174
Mức độ lớn "lớn"? – cletus
Lớn trên đĩa hoặc lược đồ lớn? – Sam
Xin lỗi các bạn, sơ đồ lớn – simonwjackson