我是数据库新手,面临挑战。我正在将订购系统连接到 具有客户端和订单表的数据库,如下所示:
客户。 | 订购。 |
---|---|
id(主键) | order_id(主键) |
名字 | 金额 |
电子邮件 | 电子邮件外键 |
电话 | 系统_订单_id |
地址 | - |
我遇到以下情况不知道如何处理: 我从我们的订单系统收到订单,其中包含以下信息:
我想检查客户在我们的数据库中是否有记录。 如果没有,请在数据库中添加一行 如果是,请更新客户行与电子邮件匹配而不是主键,并提供额外信息(电话号码)
我怎样才能轻松做到这一点?我怎样才能
REPLACE INTO
使用电子邮件进行处理,而不是主键,仅更新我丢失的信息。即更新电话号码,但保留记录中的地址和姓名。
有更好的方法吗? 最后还有更好的方法来构建我的数据库吗?
我已经在 MySQL/PHP 中完成了此类事情。您的 id 主键必须是自动递增的,并且您将需要在电子邮件字段上有一个唯一索引。
插入
Client
(姓名、电子邮件、电话、地址)
价值观
(“客户名称”、“[电子邮件受保护]”、“555-555-5555”、“000 街道地址、城市、州、邮政编码”)
重复密钥更新名称 =“客户名称”,电话 =“555-555-5555”,地址 =“000 街道地址、城市、州、邮政编码”;