Hiện tại chúng tôi đang chạy giải pháp thương mại điện tử cho một công ty du lịch và giải trí. Mỗi khi chúng tôi có bản phát hành, chúng tôi phải đưa trang web thương mại điện tử xuống khi chúng tôi cập nhật lược đồ cơ sở dữ liệu và mã truy cập dữ liệu. Chúng tôi đang sử dụng ORM được xây dựng tùy chỉnh trong đó mỗi thực thể dữ liệu chịu trách nhiệm về các hoạt động CRUD của riêng họ. Điều này được thực hiện bằng cách tạo động SQL dựa trên các thuộc tính trong thực thể dữ liệu.cách giảm thiểu thời gian ngừng ứng dụng khi cập nhật cơ sở dữ liệu và ứng dụng ORM
Ví dụ, tổ chức dữ liệu cho một địa chỉ sẽ là ...
[tableName="address"]
public class address : dataEntity
{
[column="address1"]
public string address1;
[column="city"]
public string city;
}
Vì vậy, nếu chúng ta thêm một cột mới vào cơ sở dữ liệu, chúng ta phải cập nhật các giản đồ cơ sở dữ liệu và cũng có thể cập nhật dữ liệu thực thể.
Như bạn có thể mong đợi, những người kinh doanh không quá hài lòng về sự cố ngừng hoạt động này vì nó đặt ra một xu hướng trong dòng tiền của họ. Những người hoạt động không hài lòng vì họ phải đối phó với một thời gian áp lực cao khi cơ sở dữ liệu và các ứng dụng được nâng cấp. Các lập trình viên rất khó chịu vì họ liên tục gặp rắc rối với hệ thống kế thừa mà họ thừa kế.
Bạn có ai trong số những người thông minh không?
Tôi rất không đồng ý với điều này. –
giải pháp vì nó không khác gì giải pháp của bạn, chỉ tôi nói chạy trong DB thay đổi với một lượng thời gian hơi lâu hơn trước khi chạy trong ứng dụng. Ngẫu nhiên, tôi làm việc với 911 trung tâm cuộc gọi, chúng tôi không thể có thời gian chết. Chúng tôi chia đôi lỗi chịu lỗi của chúng tôi, cập nhật DB, cập nhật các ứng dụng, sau đó không chạy hệ thống đang chạy trên hệ thống được cập nhật.Nếu chúng ta phải hoàn tác các ứng dụng của mình, việc chuyển đổi trở lại ứng dụng cũ trở nên dễ dàng hơn nhiều, giữ nguyên lược đồ DB mới. Chắc chắn, ORM đang làm điều này ngày càng khó khăn, nhưng đó là một vấn đề thực hiện mà chúng ta phải giải quyết. – gbjbaanb
Giống như bất cứ điều gì khác, sử dụng đúng công cụ cho đúng công việc ... Đối với 'Ví dụ' ... Đọc các sản phẩm nặng có thể sử dụng các tính năng bộ nhớ đệm cấp đầu tiên và thứ hai được cung cấp trong hầu hết các ORM và không thực hiện cuộc gọi đến cơ sở dữ liệu. . Mặt khác, các ứng dụng ghi nặng có thể tìm thấy nó có ý nghĩa hơn để ghi tải (đặc biệt là các hàm phức tạp) vào cơ sở dữ liệu. – JoeGeeky