mysql - 用户地址关系 MySQL - 数据库设计

标签 mysql

我对如何为电子商务网站设计数据库架构感到困惑。 我想为我的用户创建一个地址配置文件。

默认情况下,送货地址与帐单地址相同。 用户无法创建新的帐单地址,但可以添加更多送货地址。 如果没有送货地址,那么它将使用帐单地址作为默认送货地址。

我的问题是,每当我更改送货地址或帐单地址时,我必须首先切换两个表的“事件”字段(“帐单”和“送货”)。

示例

Billing Address
1. Miami 

Shipping Address
1. Miami  -(active)
2. New York
3. Boston

当我将送货地址设置为纽约时,我不喜欢将其余字段更新为 0,然后将纽约设置为 1。

有更好的实现吗?我是否应该在用户表中创建另一个字段来指示所选地址?我是否应该合并两个地址表以仅形成一个地址集合?

架构 用户 = id, 姓名

送货地址 = id、user_id、complete_address、有效

帐单地址 = id、user_id、complete_address、事件

最佳答案

Users
id, name, default_shipping_address_id, ...

BillingAddresses
id, user_id, street, ...

ShippingAddresses
id, user_id, street, ...

我会怎么做。使用用户最新的帐单地址。还要确保您存储了所有元数据,例如创建日期、修改日期等。

关于mysql - 用户地址关系 MySQL - 数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25017124/

相关文章:

php - 'this' 中的未知列 'where clause'

mysql - 使用 Hive 进行实时查询

java - 无法使用 JDBC 连接到 docker 中的本地 MySQL

mysql - 为给定索引选择最后插入的行

mysql - 为什么组合计数查询执行时间太长?

mysql - Rails 应用程序已部署并正常运行,但 MySQL 数据库显示为空

mysql - 数据库问题错误无法修复

sql - 从 LOAD DATA INFILE 查找 MySQL 错误

mysql - 显示在所选字段中匹配的 WHERE 条件值

php - Yii事件记录与一个记录的关系限制