Xây dựng cơ sở dữ liệu để thuận tiện chỉnh sửa (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

chisinhvnn

Thành viên tiêu biểu
Tham gia
7/3/08
Bài viết
479
Được thích
106
Cho minh hỏi, trong 1 phiếu xuất hàng, có 1 mã hàng được xuất nhiều lần. Mình xây dựng dữ liệu sao để thuận tiện trong việc chỉnh sửa, xóa dữ liệu của phiếu xuất hàng đó. Hiện tại mình dùng cách đánh số thứ tự trên phiếu xuất hàng để chỉnh sửa và xóa. Kính nhờ anh chị em hướng dẫn xây dựng dữ liệu sao cho thuận tiện cho việc chỉnh sửa
 
Cho minh hỏi, trong 1 phiếu xuất hàng, có 1 mã hàng được xuất nhiều lần. Mình xây dựng dữ liệu sao để thuận tiện trong việc chỉnh sửa, xóa dữ liệu của phiếu xuất hàng đó. Hiện tại mình dùng cách đánh số thứ tự trên phiếu xuất hàng để chỉnh sửa và xóa. Kính nhờ anh chị em hướng dẫn xây dựng dữ liệu sao cho thuận tiện cho việc chỉnh sửa
Bạn đưa thử ví dụ lên đi, dữ liệu hiện có như nào, bạn chỉnh sửa như nào, bạn muốn cải thiện chỗ nào. Bạn nói chung chung quá hiểu được bạn nói gì cũng là cả một vấn đề rồi.
 
Cho minh hỏi, trong 1 phiếu xuất hàng, có 1 mã hàng được xuất nhiều lần. Mình xây dựng dữ liệu sao để thuận tiện trong việc chỉnh sửa, xóa dữ liệu của phiếu xuất hàng đó. Hiện tại mình dùng cách đánh số thứ tự trên phiếu xuất hàng để chỉnh sửa và xóa. Kính nhờ anh chị em hướng dẫn xây dựng dữ liệu sao cho thuận tiện cho việc chỉnh sửa
Em phải đính kèm File với 1 sheet danh mục hàng hóa, 1 sheet có phiếu xuất hàng và 1 sheet theo dõi có tiêu đề và một ít dữ liệu (có thể giả định), có xem cấu trúc mới biết được dữ liệu của em thế nào?
 
Chứng từ thì phải có số má cho nó để gọi, tìm, truy xuất, lưu trữ...

Cái kia đơn giản là lập phiếu xuất, rồi lưu dữ liệu đã xuất theo số chứng từ.
Khi cần lấy lại dữ liệu cũ để xem, để in lại, để đối chiếu, để chỉnh sửa và ghi lại đúng chỗ cũ... thì gọi theo số chứng từ là được. Cái này có nhiều bài code sẵn rồi ấy.
 
... Mình xây dựng dữ liệu sao để thuận tiện trong việc chỉnh sửa, xóa dữ liệu của phiếu xuất hàng đó. Hiện tại mình dùng cách đánh số thứ tự trên phiếu xuất hàng để chỉnh sửa và xóa. Kính nhờ anh chị em hướng dẫn xây dựng dữ liệu sao cho thuận tiện cho việc chỉnh sửa
Phiếu xuất hàng là bút sa gà chết.
Nếu cứ chỉnh sửa dễ dàng thì cái gì sẽ xảy ra cho báo cáo xuất nhập tồn?

Ví dụ điển hình:
- Phiếu xuất 100 món hàng A
- Bảng tồn kho sẽ trừ đi 100 A, và cho ra con số tồn
- Nếu con số tồn dưới mức cần đặt hàng thì hệ thống (hoặc ai đó được báo động) sẽ đặt đơn hàng
- Nhân viên chỉnh phiếu xuất thành 10 món hàng A
- Bảng tồn kho sẽ tự chỉnh con số tồn. Và ssoo tồn bây giờ trên mức báo động.
- Ai sẽ thu hồi đơn đặt hàng ???
 
Trong hình #3 chưa thấy cột ghi ngày-tháng & như vậy sẽ từ khùng trở lên khi thực hiện quản lý hàng
Mà hình như bạn này Ghi phiếu xuất 1 cục, & trong kỳ (tháng hay tuần hoặc quí) lấy hàng làm nhiều lần từ trong 1 cục đó.?
Nếu vậy thì cũng cần hình cái phiếu đó ghi ngày chỗ nào chứ sao biết ngày lấy mặt hàng cuối cùng trong phiếu?
 
Cho minh hỏi, trong 1 phiếu xuất hàng, có 1 mã hàng được xuất nhiều lần. Mình xây dựng dữ liệu sao để thuận tiện trong việc chỉnh sửa, xóa dữ liệu của phiếu xuất hàng đó. Hiện tại mình dùng cách đánh số thứ tự trên phiếu xuất hàng để chỉnh sửa và xóa. Kính nhờ anh chị em hướng dẫn xây dựng dữ liệu sao cho thuận tiện cho việc chỉnh sửa
Tham khảo ở đây:

Bạn phải bắt tay vào tự làm thôi, và bắt tay từng bước từng bước
Tham khảo tư vấn từ người khác (nhưng theo họ thì phải chuẩn chỉ theo toàn bộ cả code cả sử dụng khai thác cơ sở dữ liệu đó - khi đó thì mới phù hợp), nhưng bản thân bạn phải chủ đích là tiến tới Cơ sở dữ liệu nào mong muốn
Thường tiêu chí là:
+ Đơn giản, rõ ràng
+ Không trùng lắp
+ Không Lặp dữ liệu giữa các dòng, các cột (trường), các bảng ...vv
 
Lần chỉnh sửa cuối:
Cảm ơn các Bác. Mình làm lại rồi đưa lên. Có chi nhờ các bác giúp đỡ.
 
Mình đang xây dựng cở sở dữ liệu để lập phương án bồi thường. Ở sheet Data Nhâp liệu là số liệu mình nhập vào. Mỗi mã đối tượng được nhập bất kỳ thời gian nào, có thể nhập trước hay sau các đối tượng khác. Khi nhập 1 đối tượng, các Mã tài sản có thể trùng nhau. Ở sheet Data nhập liệu mình có thể chỉnh sửa để hoàn thiện sau đó chuyển dữ liệu sang sheet data Cong khai, đồng thời không cho chỉnh sửa những dữ liệu đã chuyển sang ở sheet data công khai. (tương tự sheets Data cong khai sang sheet Data tham dinh cũng quy trình như vậy).
Khi chỉnh sửa, xóa dữ liệu mình đang dùng phương pháp đánh số thú tự theo từng mã đối tượng để xóa, chỉnh sửa (mỗi lần thực hiện thao tác chỉnh sửa, xóa là phải chạy lại số thứ tự ở sheetData cẩn chỉnh sửa. Kính nhờ GPE hướng dẫn sao cho dữ liệu được tối ưu để thuận tiện cho việc chỉnh sửa, xóa dữ liệu
 

File đính kèm

Tham khảo ở đây:

Bạn phải bắt tay vào tự làm thôi, và bắt tay từng bước từng bước
Tham khảo tư vấn từ người khác (nhưng theo họ thì phải chuẩn chỉ theo toàn bộ cả code cả sử dụng khai thác cơ sở dữ liệu đó - khi đó thì mới phù hợp), nhưng bản thân bạn phải chủ đích là tiến tới Cơ sở dữ liệu nào mong muốn
Thường tiêu chí là:
+ Đơn giản, rõ ràng
+ Không trùng lắp
+ Không Lặp dữ liệu giữa các dòng, các cột (trường), các bảng ...vv
2 câu này có gì khác biệt không ta?

Chuẩn 2 (2NF – Second Normal Form): Mọi trường không phải là khóa phải phụ thuộc vào khóa chính.

Chuẩn 3 (3NF – Third Normal Form): Mọi trường không phải là khóa chỉ phụ thuộc vào khóa chính mà thôi.
 
Hỏi "ta" chắc "ta" không biết đâu
1614217020787.png
 
Ở trang 'Data NhapLieu' của bạn có 259-3 dòng dữ liệu
Nhưng nếu loại trùng chỉ còn 148 dòng ở cột 'E'; Có nghĩa là như vậy bạn nên lập danh mục cho cột dữ liệu này;
Bảng danh mục hơn nữa sẽ cho ta tránh được những sai sót thô thiển như sau:

Trụ bê tông cốt thép
20​
Trụ BTCT
8​
Cây Lộc vừng, đường kính 5÷<10cm
32​
Cây Lộc vừng, đường kính 5÷<10cm
33​

CSDL của bạn không thể nào xài công thức được & như vậy các trang tính nên có tên phù hợp hơn.

Thân!
 
2 câu này có gì khác biệt không ta?

Chuẩn 2 (2NF – Second Normal Form): Mọi trường không phải là khóa phải phụ thuộc vào khóa chính.

Chuẩn 3 (3NF – Third Normal Form): Mọi trường không phải là khóa chỉ phụ thuộc vào khóa chính mà thôi.

Tiếng Việt dễ hiểu mà anh. :)

* Các gì đó PHẢI phụ thuộc vào X: Tức là cái gì đó LUÔN LUÔN tồn tại sự rằng buộc với X, và ĐỒNG THỜI có thể có hoặc không có sự rằng buộc với đối tượng khác X.

* Cái gì đó CHỈ phụ thuộc vào X: Tức là cái gì đó NẾU CÓ (tức là có hoặc không có, chứ không phải LUÔN LUÔN có) tồn tại sự rằng buộc nào đó thì chỉ rằng buộc với X, và KHÔNG có bất kỳ rằng buộc với đối tượng nào khác nữa.
 
Ở trang 'Data NhapLieu' của bạn có 259-3 dòng dữ liệu
Nhưng nếu loại trùng chỉ còn 148 dòng ở cột 'E'; Có nghĩa là như vậy bạn nên lập danh mục cho cột dữ liệu này;
Bảng danh mục hơn nữa sẽ cho ta tránh được những sai sót thô thiển như sau:

Trụ bê tông cốt thép
20​
Trụ BTCT
8​
Cây Lộc vừng, đường kính 5÷<10cm
32​
Cây Lộc vừng, đường kính 5÷<10cm
33​

CSDL của bạn không thể nào xài công thức được & như vậy các trang tính nên có tên phù hợp hơn.

Thân!
dạ anh, đối với dữ liệu em đã lập các danh mục tài sản để nhập vào. Dữ liệu ở "Data Nhaplieu" là dữ liệu mình ghi vào, không thể loại bỏ trùng được. Về việc sử dụng công thức (ô cột số thứ tự) thì em cũng chưa có ý tưởng khác anh. Vì để chỉnh sửa dữ liệu em phụ thuộc vào cột "Mã ĐT" và "cột Số thứ tự" đó àh
 
Tham khảo ở đây:
Ví dụ minh họa chưa được chuẩn:
Chuẩn 3 (3NF – Third Normal Form): Mọi trường không phải là khóa chỉ phụ thuộc vào khóa chính mà thôi.

Bảng Customer
CustomerNo

CustomerFirstName
CustomerLastName
CustomerCompany
CustomerAddress
CustomerDistric
CustomerCity
CustomerAccountNo
CustomerTaxNo

Có 3 trường có liên hệ phụ thuộc
CustomerAddress
CustomerDistric
CustomerCity
 
Ví dụ minh họa chưa được chuẩn:
Chuẩn 3 (3NF – Third Normal Form): Mọi trường không phải là khóa chỉ phụ thuộc vào khóa chính mà thôi.
Bảng Customer
Có 3 trường có liên hệ phụ thuộc
Ví dụ đó là chuẩn hoá mức 3 cho bảng Invoice, 2 bảng tách ra từ bảng gốc có thể mới ở mức 2, và nếu cần sẽ làm thêm cho các bảng này
 
Mình đang xây dựng cở sở dữ liệu để lập phương án bồi thường. Ở sheet Data Nhâp liệu là số liệu mình nhập vào. Mỗi mã đối tượng được nhập bất kỳ thời gian nào, có thể nhập trước hay sau các đối tượng khác. Khi nhập 1 đối tượng, các Mã tài sản có thể trùng nhau. Ở sheet Data nhập liệu mình có thể chỉnh sửa để hoàn thiện sau đó chuyển dữ liệu sang sheet data Cong khai, đồng thời không cho chỉnh sửa những dữ liệu đã chuyển sang ở sheet data công khai. (tương tự sheets Data cong khai sang sheet Data tham dinh cũng quy trình như vậy).
Khi chỉnh sửa, xóa dữ liệu mình đang dùng phương pháp đánh số thú tự theo từng mã đối tượng để xóa, chỉnh sửa (mỗi lần thực hiện thao tác chỉnh sửa, xóa là phải chạy lại số thứ tự ở sheetData cẩn chỉnh sửa. Kính nhờ GPE hướng dẫn sao cho dữ liệu được tối ưu để thuận tiện cho việc chỉnh sửa, xóa dữ liệu
Góp ý cho bạn:
1/ Trong lập phương án BT để áp giá nhanh và đồng nhất thì có 02 thứ quan trọng cần phải có trong File là:
- Bảng giá các loại cây trồng và tài sản.
- Bảng giá các loại đất.
2/ Các sheet cần có mối quan hệ với nhau về mã đối tượng và tên đối tượng.
3/ Không biết bạn áp dụng theo loại biểu mẫu của thông tư nào mà tôi đọc chưa hiểu hết?
4/ Nên có 1 SheetForm để làm phiếu Kiểm kê và dùng sheet này lưu vào 1 sheet cơ sở dữ liệu (từ sheet này có thể truy vấn ngược lại phiếu Kiểm kê nếu cần sửa chữa bất cứ điều gì).
 
Góp ý cho bạn:
1/ Trong lập phương án BT để áp giá nhanh và đồng nhất thì có 02 thứ quan trọng cần phải có trong File là:
- Bảng giá các loại cây trồng và tài sản.
- Bảng giá các loại đất.
2/ Các sheet cần có mối quan hệ với nhau về mã đối tượng và tên đối tượng.
3/ Không biết bạn áp dụng theo loại biểu mẫu của thông tư nào mà tôi đọc chưa hiểu hết?
*1. Bảng giá đất, giá cấy, các loại tài sản thì em đã tạo lập rồi
*2. Khi tính toán phương án bồi thường, thì dựa vào Mã Đối tượng để xử lý
*3 Đối với biểu mẫu thì thùy theo mỗi đơn vị (địa phương) để tạo biểu mẫu. ( kết quả của em là ra như ở Sheet PA Boithuong)
Hiện tại em đã xử lý ra được kết quả rồi, tuy nhiên em đang băn khoăn ở chổ chỉnh sửa, xóa dữ liệu ở sheetData nhap lieu. theo cách em đang làm em sẽ đánh số thự tự cho Mã tài sản nhập vào theo Mã ĐT (đặt công thức để lấy số thứ tự). Khi chỉnh sửa, xóa dữ liệu ăm sẽ căn cứ vào Mã ĐT và Số TT nhập vào để chỉnh sửa. Nếu xóa dữ liệu sẽ đánh số lại số Thứ tự. (làm như thế này không kiểm soát được em sợ dữ liệu khi đó dữ liệu nó sẽ thành mớ bòng bong)
 
Ví dụ đó là chuẩn hoá mức 3 cho bảng Invoice, 2 bảng tách ra từ bảng gốc có thể mới ở mức 2, và nếu cần sẽ làm thêm cho các bảng này
Bài giới thiệu về "CHUẨN HÓA CƠ SỞ DỮ LIỆU", mình nghỉ tất cả bảng phải đúng chuẩn

Bảng InvoiceDetails
InvoiceDetailsNo

SequenceNo
ProductID
Quantity
UnitPrice

ProductID và UnitPrice có liên hệ phụ thuộc
 
*1. Bảng giá đất, giá cấy, các loại tài sản thì em đã tạo lập rồi
*2. Khi tính toán phương án bồi thường, thì dựa vào Mã Đối tượng để xử lý
*3 Đối với biểu mẫu thì thùy theo mỗi đơn vị (địa phương) để tạo biểu mẫu. ( kết quả của em là ra như ở Sheet PA Boithuong)
Hiện tại em đã xử lý ra được kết quả rồi, tuy nhiên em đang băn khoăn ở chổ chỉnh sửa, xóa dữ liệu ở sheetData nhap lieu. theo cách em đang làm em sẽ đánh số thự tự cho Mã tài sản nhập vào theo Mã ĐT (đặt công thức để lấy số thứ tự). Khi chỉnh sửa, xóa dữ liệu ăm sẽ căn cứ vào Mã ĐT và Số TT nhập vào để chỉnh sửa. Nếu xóa dữ liệu sẽ đánh số lại số Thứ tự. (làm như thế này không kiểm soát được em sợ dữ liệu khi đó dữ liệu nó sẽ thành mớ bòng bong)
Vì cách làm của em khác hoàn toàn với cách anh đã từng làm là như thế này:
1/ Sử dụng 1 SheetForm để làm phiếu Kiểm kê (dựa vào danh mục áp giá các loại cây trồng và tài sản và giá các loại đất ngay bước này) và lưu dữ liệu vào 1 sheet cơ sở dữ liệu (theo dõi phiếu điều tra). Nếu muốn sửa cái gì đó thì truy vấn ngược lại phiếu Kiểm kê.
2/ Từ sheet cơ sở dữ liệu mới lập sheet PA Boi thuong (sheet này tách riêng Họ tên và Tài sản bị ảnh hưởng làm 2 cột).
 
Vì cách làm của em khác hoàn toàn với cách anh đã từng làm là như thế này:
1/ Sử dụng 1 SheetForm để làm phiếu Kiểm kê (dựa vào danh mục áp giá các loại cây trồng và tài sản và giá các loại đất ngay bước này) và lưu dữ liệu vào 1 sheet cơ sở dữ liệu (theo dõi phiếu điều tra). Nếu muốn sửa cái gì đó thì truy vấn ngược lại phiếu Kiểm kê.
2/ Từ sheet cơ sở dữ liệu mới lập sheet PA Boi thuong (sheet này tách riêng Họ tên và Tài sản bị ảnh hưởng làm 2 cột).
Dạ đúng rồi anh.
File của em đã có báo gom các sheet chứa: Danh mục Tai san, đất; Sheet chua Danhsach ho ten; Sheet để nhập + chỉnh sửa, xóa dữ liệu. các sheet Data dữ liệu liên quan và sheet PA Bồi thường
Dựa trên Biên bản kiểm kê, em có form để nhập và lưu vào Data Nhap lieu, tất cả các truy xuất dựa và Data Nhap lieu, chỉnh sửa. quy trinh.PNG
 
2 câu này có gì khác biệt không ta?

Chuẩn 2 (2NF – Second Normal Form): Mọi trường không phải là khóa phải phụ thuộc vào khóa chính.

Chuẩn 3 (3NF – Third Normal Form): Mọi trường không phải là khóa chỉ phụ thuộc vào khóa chính mà thôi.
Khi cói sự khó hiểu thì đừng hiểu theo nghĩa mà nên tìm cách hiểu theo công dụng/mục đích.

Nhiệm vụ chính của chuẩn 2 là để tránh chuyện khoá chính được [ngầm] tách ra từng phần.
Ví dụ tôi có khoá chính là GAO2CTB. Một phần của nó là gạo cấp 2, và phần kia là chưa tẩy bóng. Tuy người quen nhìn có thể hiểu, nhưng nếu chính trong bảng này có trường nào khác tự mang ý "chưa tẩy bóng" để thể hiện cái gì đó (điển hình là để nối với bảng khác) thì tôi lỗi chuẩn 2.
Từ chuẩn 2, xuất phát ra ý niệm khoá ngoại.

Nhiệm vụ chính của chuẩn 3 là để phân rõ hơn các trường hợp của chuẩn 2. Vì vậy mà chỉ đọc định nghĩa sẽ dễ bị nhầm lẫn.
Từ chuẩn 3, xuất phát ra ý niệm bảng chính (master table) và bảng phát sinh (intermediate table)
 
Ở trên tôi đã cho từ khoá gợi ý: bảng phát sinh thường gồm bảng chính cho đơn đặt hàng và phát sinh qua bảng trung gian.
 
Bài giới thiệu về "CHUẨN HÓA CƠ SỞ DỮ LIỆU", mình nghỉ tất cả bảng phải đúng chuẩn

ProductID và UnitPrice có liên hệ phụ thuộc
Vâng anh, phải có bảng ProductList, UOM (đơn vị tính), và PriceList.
Sâu hơn nữa sẽ có nhiều bảng hơn nữa như: ProductCategory, UOMType, PriceListVersion, ...

* UOMType là loại đvt như thể tích, chiều dài, diện tích, trọng lượng, công suất, ...
** PriceListVersion là những phiên bản bảng giá có ngày hiệu lực khác nhau cho những khoảng thời gian khác nhau. Tuy nhiên nếu 1 ví dụ cơ bản mà đi đến tận cùng như thế thì câu hỏi "tại sao ta" sẽ dài vô tận.
 
Vâng anh, phải có bảng ProductList, UOM (đơn vị tính), và PriceList.
Sâu hơn nữa sẽ có nhiều bảng hơn nữa như: ProductCategory, UOMType, PriceListVersion, ...

* UOMType là loại đvt như thể tích, chiều dài, diện tích, trọng lượng, công suất, ...
** PriceListVersion là những phiên bản bảng giá có ngày hiệu lực khác nhau cho những khoảng thời gian khác nhau. Tuy nhiên nếu 1 ví dụ cơ bản mà đi đến tận cùng như thế thì câu hỏi "tại sao ta" sẽ dài vô tận.
Lựa chọn ví dụ minh họa dữ liệu Hóa đơn quá phức tạp, nhiều dạng đối tượng liên kết chồng chéo nhau sẽ làm rối vấn đề, tự mình làm khó mình
 
Lựa chọn ví dụ minh họa dữ liệu Hóa đơn quá phức tạp, nhiều dạng đối tượng liên kết chồng chéo nhau sẽ làm rối vấn đề, tự mình làm khó mình
Đó là chưa nói về liên kết tới Đơn hàng bán, Báo giá, Phiếu xuất kho, phiếu vận chuyển, Mã kho xuất, mã lot, lịch thanh toán ... Nếu có hợp đồng thì liên kết hợp đồng, lịch giao hàng, lịch thanh toán & điều kiện thanh toán.
Những liên kết này không hiển thị trên tờ hoá đơn nhưng cần để tra cứu cho những bộ phận khác
 
Lần chỉnh sửa cuối:
Khi cói sự khó hiểu thì đừng hiểu theo nghĩa mà nên tìm cách hiểu theo công dụng/mục đích.
Theo như tôi đọc tài liệu bên đó thì nếu đọc định nghĩa chưa hiểu, thì đọc thêm giải nghĩa, ít nhất cũng hiểu được năm sáu phần, đọc hết cái ví dụ cũng phải hiểu được tám chín phần ở mức độ cơ bản. Dân Excel, Access chỉ cần đến đó thôi, còn anh diễn giải thêm về lý thuyết, thì lại càng khó hiểu đối với trình độ người hỏi
Còn việc tôi và anh @HieuCD phân tích thêm về việc mở rộng và đào sâu, thì tuỳ quy mô của đối tượng sử dụng. Nếu quy mô doanh nghiệp nhỏ, gói gọn trong 1, 2 phòng ban thì chưa cần
 
Theo như tôi đọc tài liệu bên đó thì nếu đọc định nghĩa chưa hiểu, thì đọc thêm giải nghĩa, ít nhất cũng hiểu được năm sáu phần, đọc hết cái ví dụ cũng phải hiểu được tám chín phần ở mức độ cơ bản. Dân Excel, Access chỉ cần đến đó thôi, còn anh diễn giải thêm về lý thuyết, thì lại càng khó hiểu đối với trình độ người hỏi
Còn việc tôi và anh @HieuCD phân tích thêm về việc mở rộng và đào sâu, thì tuỳ quy mô của đối tượng sử dụng. Nếu quy mô doanh nghiệp nhỏ, gói gọn trong 1, 2 phòng ban thì chưa cần
Để em nghiên cứu thêm. Nếu được với dữ liệu liệu đó của em ở bài 11 và bài 23 các anh, chị em hướng dẫn cụ thể giúp em với. Em cảm ơn
 

Bài viết mới nhất

Back
Top Bottom