Tôi có nên sử dụng lược đồ viết tay cho dự án được phát triển bằng ngôn ngữ cấp cao (như Python, Ruby) hay tôi nên để giải pháp ORM tự động tạo ra nó? Cuối cùng tôi sẽ cần phải di chuyển mà không phá hủy tất cả dữ liệu. Không sao khi bị ràng buộc với một RDBMS cụ thể nhưng sẽ tốt hơn nếu các tính năng như ràng buộc và thủ tục có thể được hỗ trợ bằng cách nào đó.ORM: Giản đồ viết tay hoặc được tạo tự động?
Trả lời
Tôi không bao giờ đi với lược đồ do ORM tạo.
Tôi thấy rằng cách thức mà ORM muốn tạo giản đồ thường có tỷ lệ cược tổng thể với cách tôi muốn cơ sở dữ liệu của mình được cấu trúc. Ngoài ra, và tôi biết điều này là tầm thường, lược đồ danh pháp thường là người nghèo.
Cấu trúc cơ sở dữ liệu có những ràng buộc riêng của nó, mà tôi thấy rằng thường các công cụ tự động phát hiện ORM không xem xét đầy đủ. Và nếu bạn muốn chạy báo cáo về cơ sở dữ liệu của bạn sau này (và bạn sẽ), thì có cấu trúc và thiết kế cơ sở dữ liệu tốt là rất quan trọng.
Để ORM tạo giản đồ mà nó muốn. Sau đó, bạn luôn có thể thay đổi những thứ quá chậm hoặc bạn muốn khác nhau. Nhưng nó cho phép bạn nhanh chóng bắt đầu và có một cái gì đó làm việc cộng với những người ORM thường biết những gì họ làm khi nói đến việc tạo ra các lược đồ.
Xem this Coding Horror article và các liên kết để thảo luận về việc di chuyển đó bạn sẽ cần phải làm. Lên kế hoạch cho nó ngay bây giờ.
Cũng xem Martin Fowler on database evolution; Tôi đặc biệt khuyến nghị quan niệm rằng việc tạo ra dữ liệu thử nghiệm là một phần của việc thiết lập cơ sở dữ liệu. Ý tưởng có thể hơi kém phát triển, trong đó không có sự phân định rõ ràng về các vấn đề khác nhau trong các môi trường khác nhau, sự phát triển so với QA so với sản xuất.
Hãy để giải pháp ORM của bạn tạo ra nó, nhưng không chỉ sử dụng một cách mù quáng; đọc qua nó và kiểm tra sự tỉnh táo.
- 1. Tạo sơ đồ lớp tự động
- 2. Giản đồ - Tạo sơ đồ mongodb
- 3. Khóa chính gốc hoặc khóa tự động được tạo?
- 4. Đồ thị động trong máy tính xách tay ipython
- 5. viết asm.js bằng tay
- 6. Tạo GUI từ một lược đồ XML tự động
- 7. Mã được tạo tự động
- 8. So sánh chữ viết tay
- 9. regex cho n ký tự hoặc ít nhất m ký tự
- 10. tesseract đào tạo cho văn bản viết tay
- 11. Nhận dạng chữ viết tay Java
- 12. Tự động tạo đồ họa R cho trang web
- 13. Lập trình tự động tạo mã phiếu giảm giá được tạo tự động trong Magento?
- 14. Có cách nào để tự động tạo sơ đồ lưu lượng dữ liệu và sơ đồ?
- 15. Mã Python được tạo tự động từ một sơ đồ UML?
- 16. Phát hiện nếu ký tự được đơn giản hóa hoặc ký tự Trung Quốc truyền thống
- 17. Cách tạo văn bản trên trang web xuất hiện được viết tay, nhưng không thể đọc được
- 18. Ký tự '^ M' ở cuối dòng
- 19. ExcludeFromCodeCoverage Exclude Code được tạo tự động
- 20. Lấy dải ô được tạo tự động
- 21. Tự động viết lại từ khóa tự động C++ 11 thành các kiểu có nguồn gốc
- 22. Trình đọc vân tay hoặc đầu đọc ngón tay
- 23. yacc/lex hoặc mã hóa bằng tay?
- 24. AutoMapper tự động tạo createMap
- 25. Giản đồ hỗ trợ các thuộc tính động
- 26. Tạo một Textblock được tạo tự động trong một ContentPresenter
- 27. Thuật toán cho nhận dạng viết tay
- 28. DB được nhúng nào được viết bằng Java cho một kho khóa/giá trị đơn giản?
- 29. C++: Sử dụng tự động hoặc typedef?
- 30. Giản đồ XSD cho phép thứ tự ngẫu nhiên
Tôi nghĩ đó là một cách tốt để bắt đầu, nhưng tôi luôn luôn cần phải ngừng tạo và quản lý bản thân mình, thường là vì lý do hiệu suất của db. –