将对象列表存储为另一个对象中的变量是否明智?

时间:2013-05-22 19:44:36

标签: mysql mysql-python

所以我要说我有一个订单,列出了多个项目和一些属性,比如他们的ID和价格....我的原始概念涉及单独处理这些对象,并通过列出的项目和命令它与共享属性相关联*作为order_ID *如果是这样,我如何在sql数据库中存储对象列表?

1 个答案:

答案 0 :(得分:0)

这是一个经典问题。而且,它有一个“正确”的答案。写答案是为订单中的项目设置单独的表。以下是此类表格的示例:

create table OrderItems (
    OrderItemId int not null auto_increment,
    OrderId int,
    ItemId int,
    Price Money,
    CreatedBy varchar(255),
    CreatedAt timestamp
);

此格式是规范化格式,意思是(简单来说)每个单独的实体都有自己的表格。 OrderItems表本身实际上只是将订单连接到商品,提供了一种在订单中包含商品列表的方法。

如果您来自编程背景,则可能需要一些时间和精力才能习惯SQL数据库中的规范化。将标准化数据视为一种存储数据的方式,使SQL引擎更高效,因为它们非常擅长将数据放在不同的表中。