mrsiro > 27-03-20, 09:07 AM
tranthanhan1962 > 27-03-20, 09:57 AM
ledangvan > 27-03-20, 03:00 PM
(27-03-20, 09:57 AM)tranthanhan1962 Đã viết: Thói quen của nhiều người là tách ra 2 phần nhập xuất ra là 2 bảng khác nhau, đều này vừa không cần thiết vừa gây khó cho việc xử lý tồn kho, nên đưa chung vào 1 bảng rồi phân loại chỉ cần 1 toán tử là xử lý ngay được hàng tồn nhiều mặt hàng với giá nhập xuất khác nhau là bình thường. Quan trọng là có tính giá vốn hay không và giá vốn BQGQ hay nhập giá nào xuất giá đó.
mrsiro > 27-03-20, 03:48 PM
tranthanhan1962 > 27-03-20, 05:16 PM
(27-03-20, 03:48 PM)mrsiro Đã viết: Nếu nhập chung 2 bảng nhập và xuất làm 1 thì có cần bảng tồn kho hay không.Chỉ cần tạo một query tồn kho thôi, không phải tạo bảng nữa.
Xuân Thanh > 27-03-20, 08:03 PM
SELECT tblNhapXuat.NgayLap, tblChiTiet.MaHang, IIF(tblNhapXuat.LoaiNX = "N",tblChiTiet.SoLuong,0) As SoLuongNhap, IIF(tblNhapXuat.LoaiNX = "X",tblChiTiet.SoLuong,0) As SoLuongXuat FROM tblNhapXuat INNER JOIN tblChiTiet ON tblNhapXuat.MaSoNX = tblChiTiet.MaSoNX;
mrsiro > 27-03-20, 08:29 PM
tranthanhan1962 > 27-03-20, 10:06 PM
(27-03-20, 08:29 PM)mrsiro Đã viết: nếu gộp chung nhập xuất vào 1 table, mình nghỉ áp lực dữ liệu lên table này sẽ nhiều, toàn bộ nghiệp vụ nhập xuất, tính tồn kho báo cáo đều phải truy vấn lên table này. Còn nếu mình tách riêng nhập và xuất thì nghiệp vụ nhập kho chỉ thao tác trên tblnhap, nghiệp vụ xuất kho chỉ thao tác trên tblxuat.OK! Bạn suy luận hợp lý nếu gộp chung 2 table thành 1 thì sẽ nhiều record hơn 2 table. Ví dụ 1 table chung sẽ có 1.000 record, nhưng nếu chia ra là 2 table thì tổng record của 2 table là bao nhiêu vẫn là 1.000 Chứ có giảm được record nào đâu. Bạn thử tạo ra 2 CSDL: 1 cái có 1 table có khoảng 1.000 Record và 1 cái có 2 table giống như table CSDL kia và chia số lượng record ra 2 table thử xen cái nào có dung lượng lớn hơn. Nhưng điều này không là gì cả. Đây mới là vấn đề quan trọng. Khi 2 table nhập xuất không liên quan nhau thì làm sao tính được tồn kho. Bạn phải có một query để gom 2 table đó lại. Từ query đó mới tính đển việc làm các query khác để tính tồn kho. Nhưng table và query cũng chưa phải là gì. Một vấn đề nữa là form. Với việc chỉ có 1 table thì chỉ tốn 2 form 1 form nghiệp vụ (Parent form): ngày/tháng, số chứng từ, tên khách hàng, nghiệp vụ (Xuất/Nhập) và 1 subform (hàng hoá xuất/nhập) còn CSDL tách nhập xuất phải là 4 form: 2 parent form + 2 sub form. Nhưng vấn đề không dửng ở đó, đối với CSDL table chung chỉ cần 1 query là đã có ngay tồn kho. Thì đối với CSDL tách riêng phải có 1 query tổng hợp sau đó mới dùng 1 query khác để xử lý tồn kho từ query tổng hợp đó. Lúc chạy query thì mới là vấn đề (lúc này nới là lúc ngốn RAM) chắc chắn chạy một total query sẽ nhanh hơn chạy 1 union query + total query. Áp lực của chương trình không ảnh hưởng bởi table nhiều hay ít record bằng cách xử lý để chay kết quả. Ví dụ bạn có 5 câu lệnh if ... End if lồng nhau chắc chắn sẽ chậm hơn rất nhiều nếu dùng câu lênh Select Case ...end select với 6 Case
Xuân Thanh > 28-03-20, 09:53 AM
mrsiro > 28-03-20, 10:03 PM