客户移动结账数据库设计

时间:2014-01-15 14:52:43

标签: database database-design relational-database database-schema

我计划为移动平台建立零售业客户移动结账应用程序。

我的问题是,如果用户多次购买相同的产品我应该怎么做,无论我应该增加数量还是应该将其作为新条目。

如果以前的数据库设计也可用于此类系统。请提供链接。

谢谢。

1 个答案:

答案 0 :(得分:1)

这很常见,这是一个例子:

您的发票中包含有关整个交易的信息。

invoices
    id              unsigned int(P)
    created         datetime
    customer_id     unsigned int(F customers.id)
    ...

+----+---------------------+-------------+-----+
| id | created             | customer_id | ... |
+----+---------------------+-------------+-----+
|  1 | 2014-01-15 08:00:00 |           1 | ... |
| .. | ................... | ........... | ... |
+----+---------------------+-------------+-----+

然后您有一张表格,其中包含每张发票的详细信息。在我的考试数据中,您可以看到客户购买了13个蓝色小工具和1个红色小工具。

invoice_items
    id              unsigned int(P)
    invoice_id      unsigned int(F invoices.id)
    item_id         unsigned int(F items.id)
    quantity        double
    ...

+----+------------+---------+----------+-----+
| id | invoice_id | item_id | quantity | ... |
+----+------------+---------+----------+-----+
|  1 |          1 |       1 |     13.0 | ... |
|  2 |          1 |       2 |      1.0 | ... |
| .. | .......... | ....... | ........ | ... |
+----+------------+---------+----------+-----+

以下是一些示例项目。显然,在现实世界中,您可以存储比描述更多的信息。

items
    id              unsigned int(P)
    description     varchar(15)

+----+-------------+
| id | description |
+----+-------------+
|  1 | Blue Widget |
|  2 | Red Widget  |
| .. | ........... |
+----+-------------+