Gen database bằng code java sử dụng các anotation
Khi em làm 1 project nào đó, Em thường tạo bảng bằng cách gen code entity và dùng những annotation @ManyToOne, @OneToMany, @OneToOne. Em không biết là nó có ảnh hưởng tới những cái gì không ạ.
spring
Remain: 5
2 Answers
monkey
Beginner
monkey
Beginner
Cách này chỉ dùng cho test thôi em ạ, chứ trong dự án thật thì không nên dùng, vì sao nhỉ?
- Việc tạo bảng còn liên quan đến việc chọn charset, đánh index, như vậy thì nếu tạo bằng code thì chưa chắc đã đủ.
- Trong quá trình vận hành thì bảng thay đổi nhiều, ví dụ như thêm cột, thêm index, nhưng có thể không cần phải update code, vậy bây giờ mỗi lần thay đổi lại phải update code thì không hợp lý.
- Những annotation kia trong dự án thật (những dự án dữ liệu lớn) thì không dùng được, ví dụ dự án chat em có bảng user liên kết với message (1 user nhiều message) thì em không thể nào select hết toàn bộ message của user được vì số lượng message là rất lớn.
- Việc thiết kế db thường làm trước việc thiết kế code, nên từ db rồi gen ra entity sẽ thuận lợi hơn nhiều.
- Theo nguyên tắc single repository thì mỗi 1 thành phần nên thực hiện một chức năng, nếu bây giờ em nhồi cả việc tạo bảng cho entity thì nó đã là 2 việc mất rồi.
-
0