6

tôi bán rượu. vì vậy tôi có một hàng tồn kho của chai. cho đến nay tôi có một mô hình "InventoryUnit" tham chiếu đến sản phẩm và line_item.Quản lý khoảng không quảng cáo: Làm cách nào để xử lý các đơn vị khoảng không quảng cáo đã bán trong cơ sở dữ liệu?

  1. mỗi chai duy nhất nên được lưu trữ như một đối tượng InventoryUnit cá nhân trong cơ sở dữ liệu của tôi?

  2. thực tiễn tốt nhất để giảm khoảng không quảng cáo của tôi là gì? nếu tôi bán một chai, tôi có phá hủy một InventoryUnit không? hay tôi chỉ cần thêm một cột trạng thái có thể được "bán" hoặc "trong kho"?

  3. Tôi lo lắng về hiệu suất, Postgres có thể xử lý hàng trăm nghìn đối tượng InventoryUnit không?

Tôi thực sự đánh giá cao một số trợ giúp về vấn đề này. xin lỗi, tôi là một người phụ trách giao diện, vì vậy tôi thực sự hút về mô hình hóa cơ sở dữ liệu…

+0

"chai" trong cơ sở dữ liệu của bạn là gì. Làm cách nào để bạn phân biệt các chai và bạn cần theo dõi thông tin gì về chúng? –

+1

Tôi muốn giới thiệu phương pháp của Neil. Tôi đã tạo ra một mô hình gọi là "Giao dịch" và nó ghi lại chuyển động từ mô hình này sang mô hình khác. Giả sử bạn có 100 chai và sau đó bạn bán hoặc mất một số chai. Sau đó, bạn có thể có một hồ sơ của tất cả các sản phẩm bạn có được hoặc bạn bán. Hệ thống bạn đang nghĩ đến rất giống với cách Quickbooks hoạt động. Nếu bạn hiểu kế toán thì điều này sẽ khá dễ dàng. –

Trả lời

0

Đó là một câu hỏi khó trả lời. Không có đúng cách mặc dù các kiểu máy khác nhau sẽ có hậu quả tùy thuộc vào cách sử dụng.

Nếu bạn đang theo dõi khối lượng thấp nhưng cổ phiếu chuyên sâu về thông tin (ví dụ: máy bay và các bộ phận), bạn có thể muốn xác định mục nhập cho mọi mục; nếu bạn đang lập mô hình một khối lượng các sản phẩm giống hệt với gần không có danh tính (như trường hợp của bạn có vẻ là) Tôi sẽ đi với tập trung vào tình trạng cổ phiếu. Tất cả phụ thuộc vào mức độ sâu sắc mà bạn muốn theo dõi vòng đời của vật phẩm.

Tự hỏi "có đáng để theo dõi trường hợp này của một hộp bánh quy giòn hay tôi có thể theo dõi số lượng pallet đã ảnh hưởng đến cổ phiếu hiện tại của tôi?" Một trạm xăng có tạo ra một mục nhập cho mỗi lít nhiên liệu không?

3

Bạn nên theo dõi khoảng không quảng cáo ở mức độ có mức độ thấp nhất. Trong các từ khác, khi bạn định chọn một đơn vị duy nhất trên kệ, thông tin cụ thể nhất mà bạn cần biết để có được điều đúng.

Trong ví dụ của bạn, tôi không thể chỉ nói, "Đi lấy một chai" hoặc bạn có thể mang rượu trở lại thay vì vodka. Tôi cũng không thể nói, "Đi lấy một chai vodka" bởi vì bạn có thể mang lại Absolut khi tôi muốn Ciroc. Cuối cùng, tôi không thể nói, "đi lấy một chai Ciroc" bởi vì bạn có thể mang lại kích thước 1L khi tôi muốn kích thước 1.5L.

Tôi có thể nói "Hãy lấy chai thứ ba từ bên trái ở hàng đầu của vỏ dưới cùng của 1.5L Ciroc", nhưng điều đó sẽ ngớ ngẩn vì tất cả các chai 1.5L Ciroc đều giống nhau. (Hương vị sang một bên;)).

Điểm ngọt trở thành đơn vị lưu giữ chứng khoán của bạn (SKU). Rất may, hầu như mọi công ty trên thế giới đều đã giải quyết vấn đề này cho bạn rồi. Chỉ cần sử dụng số UPC dưới mã vạch làm SKU của bạn.

Dựa trên điều này, các mô hình của bạn sẽ là một cái gì đó giống như ...

InventoryOnHand 
- id:int 
- product_id:int 
- quantity:int 

Product 
- id:int 
- sku:string 
- name:string 

Sau đó bạn sẽ tăng và giảm số lượng InventoryOnHand như mọi thứ đi vào và ra khỏi cổ phiếu.

7

Một. nên mỗi chai duy nhất được lưu trữ như là một đối tượng InventoryUnit cá nhân trong cơ sở dữ liệu của tôi?

Nếu bạn có thể bán riêng lẻ, thì có, theo dõi chúng theo trường hợp/hộp.

Hai. thực hành tốt nhất để giảm khoảng không quảng cáo của tôi là gì? nếu tôi bán một chai, tôi có phá hủy một InventoryUnit không? hay tôi chỉ cần thêm một cột trạng thái có thể được "bán" hoặc "trong kho"?

Sử dụng các khái niệm về Vị trí và chuyển động (một phong trào phải là thực thể riêng của nó). Ví dụ, OpenERP sử dụng "các vị trí ảo" tương tự như vậy.

Đập chai? Di chuyển nó từ vị trí hàng tồn kho của nó đến vị trí "bị hư hỏng"
Chai bị mất tích? Di chuyển nó từ hàng tồn kho đến vị trí "ether"
Tìm thấy một chai ngẫu nhiên? Chuyển từ "ether" sang khoảng không quảng cáo
Bán một chai? Chuyển nó từ khoảng không quảng cáo sang "đã bán"
Mua một chai? Chuyển nó từ mua vào khoảng không quảng cáo

Ba. Tôi lo lắng về hiệu năng, Postgres có thể xử lý hàng trăm nghìn đối tượng InventoryUnit không?

Postgres có thể xử lý hàng trăm tỷ đối tượng. Bình thường hóa đúng cách. Sử dụng các loại dữ liệu nhỏ. Sử dụng các chỉ mục.

Một số điều khác cần lưu ý:

  • Bạn có thể bán một cái gì đó, và nó trở lại, và bạn đặt nó trở lại trong kho
  • Bạn có thể mua một cái gì đó, nhưng nó không phải là đúng, vì vậy bạn gửi lại cho người bán
  • Bạn có thể bán thứ gì đó mà bạn không sở hữu (trên lô hàng hoặc chưa có trong kho)
  • Bạn có thể có thứ gì đó trong khoảng không quảng cáo hiện không được bán.

Đối với khoảng không quảng cáo kế toán, bạn cũng cần tính số lượng hàng gửi đến và đi mà bạn chịu trách nhiệm, dựa trên trạng thái FOB miễn phí.

Bạn cần phải đếm hàng hóa thô (DIY sản xuất rượu vang thứ?) Và các công trình cơ bản dở dang nếu bạn thực hiện/lắp ráp bất cứ điều gì, cũng như chi phí đặt hàng vv

hàng uỷ thác không được tính trong hàng tồn kho kế toán.

Các vấn đề liên quan