- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
Internet 上的大多数问题都集中在 Order、OrderItem 上。设计一个全面处理在线零售所有方面(订单、订单项目、返回、退款、换货)的数据库几乎没有什么问题。
我只是基本了解这个数据模型。
Product (ProductID, Name, etc)Order (OrderID, Date, totalcost, etc)OrderItem (OrderID, ProductID, Quantity, UnitPrice, etc)
基于以上结构,如何管理返回、退款、换货?
我注意到,当我在超市返回/换货时,那里的工作人员会重新生成一张新发票。这是他们处理返回、退款、换货的方式吗?
最佳答案
这里有一些表格和示例数据...
addresses
id unsigned int(P)
line1 varchar(50)
line2 varchar(50) // Allow NULL
city_id unsigned int(F cities.id)
zip varchar(6) // 5 digits for US and MX, 6 characters (X9X9X9) for CA
zip4 char(4) // Allow NULL
+----+-----------------+-------+---------+--------+------+
| id | line1 | line2 | city_id | zip | zip4 |
+----+-----------------+-------+---------+--------+------+
| 1 | 123 Main Street | Apt A | 17 | 92101 | 1234 |
| 2 | 345 East Street | NULL | 25 | T1X0L3 | NULL |
| .. | ............... | ..... | ....... | ...... | .... |
+----+-----------------+-------+---------+--------+------+
cities
id unsigned int(P)
state_id unsigned int(F states.id)
name varchar(50)
...
+----+----------+-----------+-----+
| id | state_id | name | ... |
+----+----------+-----------+-----+
| .. | ........ | ......... | ... |
| 17 | 130 | San Diego | ... |
| .. | ........ | ......... | ... |
| 25 | 14 | Calgary | ... |
| .. | ........ | ......... | ... |
+----+----------+-----------+-----+
参见 ISO 3166-1
countries
id char(2)(P)
iso3 char(3)(U)
iso_num char(3)(U)
name varchar(45)(U)
+----+------+---------+---------------+
| id | iso3 | iso_num | name |
+----+------+---------+---------------+
| .. | .... | ....... | ............. |
| CA | CAN | 124 | Canada |
| .. | .... | ....... | ............. |
| MX | MEX | 484 | Mexico |
| .. | .... | ....... | ............. |
| US | USA | 840 | United States |
| .. | .... | ....... | ............. |
+----+------+---------+---------------+
参见 PHP's crypt() function用于散列密码。
customers
id unsigned int(P)
first_name varchar(50)
middle_name varchar(50) // Allow NULL
last_name varchar(50)
email varchar(255)
username varchar(32)
password varbinary(255) // hashed
...
+----+------------+-------------+-----------+----------------------------+-----------+----------+-----+
| id | first_name | middle_name | last_name | email | username | password | ... |
+----+------------+-------------+-----------+----------------------------+-----------+----------+-----+
| 1 | John | Quincy | Public | jqp@privacy.com | johnqball | xxxxxxxx | ... |
| 2 | Jane | NULL | Doe | ladyinred@chrisdeburgh.com | janeykins | xxxxxxxx | ... |
| .. | .......... | ........... | ......... | .......................... | ......... | ....... | ... |
+----+------------+-------------+-----------+----------------------------+-----------+----------+-----+
customers_addresses
id unsigned int(P)
customer_id unsigned int(F customers.id)
address_id unsigned int(F addresses.id)
orders
id unsigned int(P)
customer_id unsigned int(F customers.id)
bill_address_id unsigned int(F addresses.id)
ship_address_id unsigned int(F addresses.id)
created datetime
shipped datetime
...
+----+-------------+-----------------+-----------------+---------------------+---------------------+-----+
| id | customer_id | bill_address_id | ship_address_id | created | shipped | ... |
+----+-------------+-----------------+-----------------+---------------------+---------------------+-----+
| 1 | 1 | 1 | 1 | 2012-12-31 23:59:59 | 2013-01-01 00:00:00 | ... |
+----+-------------+-----------------+-----------------+---------------------+---------------------+-----+
orders_products
id unsigned int(P)
order_id unsigned int(F orders.id)
product_id unsigned int(F products.id)
quantity unsigned int
unit_price double
...
+----+----------+------------+----------+------------+-----+
| id | order_id | product_id | quantity | unit_price | ... |
+----+----------+------------+----------+------------+-----+
| 1 | 1 | 1 | 1 | 12.34 | ... |
| 2 | 1 | 2 | 13 | 1.78 | ... |
| .. | ........ | .......... | ........ | .......... | ... |
+----+----------+------------+----------+------------+-----+
products
id unsigned int(P)
name varchar(50)
price double
...
+----+----------+-------+-----+
| id | name | price | ... |
+----+----------+-------+-----+
| 1 | Widget 1 | 12.34 | ... |
| 2 | Widget 2 | 1.78 | ... |
| .. | ........ | ..... | ... |
+----+----------+-------+-----+
returns
id unsigned int(P)
order_product_id unsigned int(F orders_products.id)
quantity unsigned int
...
+----+------------------+----------+-----+
| id | order_product_id | quantity | ... |
+----+------------------+----------+-----+
| 1 | 1 | 1 | ... |
| .. | ................ | ........ | ... |
+----+------------------+----------+-----+
参见 ISO 3166-2
states
id unsigned int(P)
country_id char(2)(F countries.id)
code char(2) // AB, AL, NL, etc.
name varchar(50) // Alberta, Alabama, Nuevo Leon, etc.
...
+-----+------------+------+------------+-----+
| id | country_id | code | name | ... |
+-----+------------+------+------------+-----+
| ... | .......... | .... | .......... | ... |
| 14 | CA | AB | Alberta | ... |
| ... | .......... | .... | .......... | ... |
| 72 | MX | CH | Chiapas | ... |
| ... | .......... | .... | .......... | ... |
| 130 | US | CA | California | ... |
| ... | .......... | .... | .......... | ... |
+-----+------------+------+------------+-----+
返回、退款和换货实际上都是返回 - 客户正在退回产品。你如何处理它取决于你的业务规则......
关于database - 如何设计处理 Order、OrderItem、Return、Refund、Exchange 的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18604678/
确定开始:我在 Spring 做药房项目。我正在使用 Eclipse 和数据库 PostgreSQL。 在数据库中,我有表名称:OrderItem、CustomerOrder、Product 和 Re
我正在使用 django-rest-framework 从头开始构建我自己的电子商务系统。 这是我的系统架构的描述: 数据库格式 = PostgresSQL 一个帐户有许多LineItems(又名
我正在尝试使用 jpa 在 java 中设计和编码一个基本的商店 Web 应用程序。 当用户在 ShoppingCart 中选择产品时,我创建了一个列表 Cartitem s。 Cartitem 的生
我现在正在创建电子商务,当我尝试将商品添加到购物车时,它会返回上述错误吗? 它提示 View 中的这行代码: else: order.items.add(order_item) 查看 def a
我有两个表 Orders 和 OrderItem 如下: @Entity @Table(name = "orders") public class Order implements Serializa
所以我今天花了大约 5 到 6 个小时来与 Symfony2 表单作斗争,现在我想从社区的其他成员那里得到一些建议。我尝试了 3 种不同的方法来实现我所追求的目标,但没有成功。我通读了文档,用谷歌搜索
models/order_item.rb class OrderItem reload! Reloading... => true 2.1.3 :022 > Order => Order(i
Internet 上的大多数问题都集中在 Order、OrderItem 上。设计一个全面处理在线零售所有方面(订单、订单项目、返回、退款、换货)的数据库几乎没有什么问题。 我只是基本了解这个数据模型
因此,在尝试运行我的 grails 应用程序时,我不断收到主题行错误。这是我的两个域类,它们似乎是导致错误的原因。 在线订购: package rewards class OnlineOrder {
我是一名优秀的程序员,十分优秀!