gpt4 book ai didi

php - 额外的 sql 查询或额外的 8 个字段(性能)

转载 作者:行者123 更新时间:2023-11-29 07:34:41 25 4
gpt4 key购买 nike


当用户客户端存储在数据库中时,我遇到这种情况
以及他们的全名、地址、州、邮政编码、国家/地区、电子邮件等信息。

clients_table
client_id, client_name, client_address, client_state ...etc

成员(member)可以向现有客户或新客户销售(未保存数据)
我必须将事务存储在数据库中。

我想到了方法 1

transactions_table
trxid, client_id, client_name, client_address, client_state ...etc

哪里client _id 指 client _id clients_table

为了避免在数据库上放置重复的数据,当事务发生时
已获取,我进行了 2 个查询。
-第一个查询检查是否client_idtransactions_table
是否为空。如果不为空,则客户端已存在于数据库中。
在这种情况下,将进行第二个查询来获取客户端的客户端数据
使用该特定 ID,在 clients_table

-如果改为client_idtransactions_table为 null 表示不存储客户端数据( guest 客户端)
所有可用数据都存储在事务表中。

这样,当 client_id 存在时,我会进行额外的查询,但避免输入相同的客户端数据
一遍又一遍。


方法 2
而不是检查交易是否属于已保存的客户端
我只是将客户端数据始终存储在 transactions_table 中,所以我会
有一个非常大的、多次重复的表。



你们有什么感想?我应该选择方法一还是方法二?

最佳答案

你现在拥有的很好,你应该尽量避免重复的数据。

但是,您不必编写两个查询。您可以使用 LEFT JOIN拉取所有交易和客户端,无论是否存在与交易关联的客户端。

读取数据时,可以检查client_id列是否为空。如果是的话,就不用费心去阅读其他专栏了。如果它不为空,您可以从中读取。

关于php - 额外的 sql 查询或额外的 8 个字段(性能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31252211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com