【发布时间】:2013-05-22 19:44:35
【问题描述】:
假设我有一个订单,其中列出了多个项目和一些属性,例如它们的 ID 和价格……我最初的概念涉及分别处理这些对象,并通过列出的项目和列表关联的每个订单中列出的项目order 它与共享属性相关联*作为 order_ID* 如果是这样,我如何将对象列表存储在 sql 数据库中?
【问题讨论】:
标签: mysql mysql-python
假设我有一个订单,其中列出了多个项目和一些属性,例如它们的 ID 和价格……我最初的概念涉及分别处理这些对象,并通过列出的项目和列表关联的每个订单中列出的项目order 它与共享属性相关联*作为 order_ID* 如果是这样,我如何将对象列表存储在 sql 数据库中?
【问题讨论】:
标签: mysql mysql-python
这是一个经典问题。而且,它有一个“正确”的答案。写答案是为订单中的项目创建一个单独的表格。以下是此类表的示例:
create table OrderItems (
OrderItemId int not null auto_increment,
OrderId int,
ItemId int,
Price Money,
CreatedBy varchar(255),
CreatedAt timestamp
);
这种格式是一种规范化格式,意思是(简单来说)每个单独的实体都有自己的表格。 OrderItems 表本身实际上只是将订单与商品连接起来,提供了一种在订单中包含商品列表的方法。
如果您有编程背景,可能需要一些时间和精力来适应 SQL 数据库中的规范化。将规范化数据视为一种存储数据的方式,可以提高 SQL 引擎的效率,因为它们非常擅长将不同表中的数据放在一起。
【讨论】: