Viết Query ORM cho trường hơp này!
Cái này sếp bạn bắt code lại là đúng rồi, mình đang thấy bạn gọi đến 6 câu query cho 1 user. Hãy tưởng tượng bạn có đến 10000 user thì tổng số lượng query nó lên đến 60000 cho đoạn đó. Theo mình có 2 cách để refactor:
- Sử dụng ít câu truy vấn hơn thông qua các mệnh đề có sẵn trong SQL (select, join, blabla...)
- Mình đang thấy đoạn trong vòng lặp là bạn đang muốn thống kê hiệu xuất bán hàng của user. Nếu dữ liệu nhiều mình nghĩ nên có 1 bảng thống kê riêng, bạn sẽ có 1 batch chạy ngầm để tổng hợp dữ liệu -> lưu vào bảng thống kê theo user_id. Như vậy chỉ cần join bảng users với bảng thống kê đó là xong.
BTW, nếu dữ liệu siêu siêu lớn bạn có thể tham khảo bài viết sau: https://viblo.asia/p/he-thong-analytic-suong-suong-tu-du-lieu-30-trieu-nguoi-dung-vyDZOwwRZwj
[Laravel] Hỏi về cách dùng file .env cho môi trường develop và production
Mình chưa hiểu sao bạn lại cần như vậy?
- File .env thường sẽ không được đưa lên git (mặc định Laravel cũng đã cho file .env vào .gitignore).
- Mỗi môi trường bạn sẽ cấu hình file .env riêng cho nó.
Nếu deploy một cách thủ công thì vì file này đã bị ignore rồi nên nó sẽ không bị ảnh hưởng gì khi bạn update code mới lên server.
Nếu deploy bằng tool (deployer chẳng hạn) thì file .env cũng nên đưa vào shared
để dùng chung và ko ảnh hưởng gì tới web khi deploy.
Cách triển khai ASP.NET Core Web App với Entity Framework
Mình chưa dùng qua ASP.NET hay là Entity Framework nhưng mà theo mình thì bạn cần biết một vài khái niệm chung sau đây.
Hiện tại bạn đang có 2 môi trường là: Local và Server (giả định là production)
1. Deploy lên server có cần backup database để chuyển lên hay không?
Hiểu đơn giản thì migration sinh ra với mục đích để khi làm việc chung mình không cần phải backup database mỗi khi deploy hay chia sẻ cho các developer khác mỗi khi có sự thay đổi về database (thêm, sửa, xóa bảng, cột,...).
Hãy tưởng tượng có 2 dev.
Dev A thêm cột X -> import database lên server
Dev B xóa cột Y nhưng chưa update database mới từ A -> import database lên server
=> Nghiễm nhiên database mới sẽ bị sai khác dẫn đến lỗi ứng dụng.
Chính vì thế mình nghĩ bạn nên chạy migration trên server để tạo ra các table trong database thay vì backup lên server.
2. Và em có cách nào để che giấu connection string của ứng dụng khi deploy lên server không ạ?
Mình đang hiểu connection string ở đây nghĩa là thông tin kết nối đến database không biết có đúng không. Nếu đúng thì mình xin trả lời bạn như sau:
Bạn cần biết đến khái niệm biến môi trường (environment variables). Tức là mỗi môi trường sẽ có các thông tin config khác nhau. Ví dụ như: API key của service nào đó, thông tin database connection, giá trị config cho ứng dụng,... Thường thì những thứ này sẽ lưu trong 1 file gọi là env, file này sẽ bị ignore ra khỏi git và mỗi môi trường bạn sẽ phải tạo và điền vào các thông tin khác nhau.
Thân ái và quyết thắng!!!
Vuejs: data lấy dữ liệu từ props (error)
Dùng created() để gán giá trị của props vào data anh ạ.