database - 数据库——在企业管理软件中管理产品部分产品
问题描述
在我公司的业务管理软件中,我是这样管理产品的:
table products
id name part_of_id ...
1 license NULL
2 computer NULL
3 computer 2
4 keyboard 2
5 mouse 2
表customer_invoices
id ...
1
2
表customer_invoice_products
product_id invoice_id price ...
1 1 100
2 2 300
表供应商_发票
id ...
1
2
表供应商_发票_产品
product_id invoice_id price ...
1 1 90
3 2 250
4 2 10
5 2 10
第一个示例,我们从供应商处购买 1 个许可证并将其出售给客户,一切都很好
第二个示例,我们从供应商处购买 1 台计算机、1 个键盘、1 个鼠标并将它们作为 1 台计算机出售给客户,问题是如果例如,我需要搜索与订单相关的所有产品 我必须查询与其直接相关的所有产品(产品 id 1)以及与它们相关的所有产品(产品 id 2、3 和 4)
,除了显然将计算机作为 3 种产品出售给客户,有没有更好的方法来做到这一点,管理这个的最佳实践是什么?
解决方案
推荐阅读
- r - * 在表格 LaTeX 表格中显示 Rmarkdown 中的错误
- javascript - 如何通过上下文将单击的对象名称和路径发送到另一个组件
- c# - 了解 BluetoothLE 写入特性中的十六进制数据格式(Windows UWP 示例应用程序)
- html - 超链接在边缘浏览器中不起作用,但在 chrome 浏览器中起作用
- svg - 缩放图标 (
- python - 如何制作具有不同值的相同变量的列表?Python
- sql - dolphindb 中的 count(*) 与 count(column)
- mysql - EKS Statefulset Mysql 被 Init 卡住了
- ruby-on-rails - Rails 6.1 中没有 bin/bundle 文件,无法获取 TURBO_STREAM 请求格式
- iis - IIS - URL Rewrite2.1 添加 2 条规则会降低网站性能