gpt4 book ai didi

SQL 数据库设计 - 需要不同子表的类型表?

转载 作者:搜寻专家 更新时间:2023-10-30 23:12:04 25 4
gpt4 key购买 nike

首先,我感谢任何帮助。

我正在努力寻找某些数据库设计的最佳方法,而且我什至不确定从哪里开始搜索我所追求的设计类型。

简而言之,我们有一堆付款方式类型,例如现金、信用卡和 Paypal 。但是这些方法中的每一个都需要它们自己的一组参数,包括它们的设置细节(即 PayPal 的 API 细节信息)以及每种方法的交易需要一组不同的字段 - 即。对于信用卡 - 我们需要开始日期、结束日期、卡号等。 - 对于 Paypal ,我们需要电子邮件地址和其他一些东西。

现在 - 我可以简单地拥有表格:payment_method_typespayment_methodspayments,它们具有涵盖所有基础的所有必需字段 - 例如paypal_email_address 字段等。但是是否有更好的解决方案来模拟更多基于文档的数据库,您只需要相关字段?

例如下表payment_method_types, paypal_payment_methods, cash_payment_methods, paypal_payments, cash_payments 等等。这看起来不太好。

我要实现的目标一定有好的解决方案吗?我是否只需要包含所有可能的字段(即 paypal_email_address 等)并在我的应用程序中处理它?<​​/p>

非常感谢任何输入。

最佳答案

我可能会被相关人员否决 :),但您可以将此类信息存储在 JSON 中。 (PostgreSQL 9.3 版对 JSON 有很好的支持)或 hstore列,它可以很好地结合关系数据库和 noSQL 风格。

您可以在类型化的列中存储金额、日期、货币等常用字段,并使用一个 JSON/hstore 类型的列来存储其他详细信息,例如卡号。因此您的数据可能如下所示:

Type          Date         Amount  Currency  Additional
Credit Card 2013-08-01 15.1 EUR {Card Number: "XXXX-XXXX-XXXX-XXXX"}
PayPal 2013-07-02 103.8 USD {Email: "client@company.com"}

或 hstore:

Type          Date         Amount  Currency  Additional
Credit Card 2013-08-01 15.1 EUR Card Number => "XXXX-XXXX-XXXX-XXXX"
PayPal 2013-07-02 103.8 USD Email => "client@company.com"

或者您可以为附加信息创建子表 - 这样您就可以将常用数据存储在表 Payments 中,并将所有附加信息存储在 PaymentsPayPalPaymentsCreditCard 中等等。

关于SQL 数据库设计 - 需要不同子表的类型表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18534801/

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