gpt4 book ai didi

具有覆盖组设置和允许设置的 MySql DB 结构

转载 作者:行者123 更新时间:2023-11-29 19:26:26 26 4
gpt4 key购买 nike

你好吗?我正在开发一个包含带有邮件列表的帐户的项目。该帐户有3个他可以购买的套餐。每个包都有自己的设置。例如:第一个包中,用户每天收到 1 封电子邮件,而在第二个包中,他每天收到 5 封电子邮件。我想要的另一个功能是覆盖某些包设置的操作。这意味着,对于一个帐户,我会将每日电子邮件限制设置为 7 封。我在这个系统中需要的另一项功能是电子邮件提供商。我希望第一个包仅从第一个提供商处获取电子邮件,第二个包从 2 个提供商处获取电子邮件,依此类推。

所以我在设计数据库时遇到问题。我创建了表 emailSubscriptions,其中包含 EmailID 和名称。我创建了 accountGroup 表,其中仅包含 GroupId 和名称。我创建了表帐户,其中包含 AccountID、GroupID(外键)、电子邮件、密码和投资。 (根据他的投资,他得到了他的包裹)。我创建了 accountSubscriptions 表,其中包含 SUBSCRIPTION ID、AccountID、EmailID 和 IsActive。我创建了表包,其中包含 PackageID、GroupID、从投资到投资以及所有其他包设置,例如每日最大电子邮件数 ....

最终用户当然有。 GUI,他可以看到他的设置并根据他当前的包编辑他可以编辑的内容。用户的管理员也有 GUI。

无论如何,现在我陷入困境了。我考虑过将所有包列添加到帐户中,然后当我想发送电子邮件时,我将从组中获取设置,只要它不是 0/空,​​就覆盖,但问题是当某些设置为 0/1 时,那么该列默认为 0,如果某些东西的 groupSettings 为 1 并且我想将其关闭,但我不能。所以这是第一个问题第二个问题是允许的电子邮件订阅......实际上同样的问题。我考虑过将 allowedEmails 添加到包中,但这意味着每当我发送电子邮件时,我都需要使用 LIKE 运算符 - 这对于运行时来说并不好。

所以我真的需要你的帮助...希望你能帮助我。谢谢!!

最佳答案

我想说,需求部分不够清晰。但无论如何我们还是要这么做。

让我们从这个困惑的事物领域中提取实体。每个实体通常意味着一张表。

从帐户开始。

帐户有订阅。目前尚不清楚这里的关系是什么:如果是 1:1(“帐户只能有一个订阅”) - 那么对它的引用是帐户实体的一部分,如果是 1:n - 那么你需要一个特殊的帐户-订阅关系表。

现在订阅 - 它由 SubscriptionType 或 Package 定义,因此必须有一个表包含这些记录(这些限制以及您想要的任何其他内容)。帐户或帐户订阅表将引用它来定义帐户拥有哪些订阅。

然后是提供商 - 它们由订阅类型/包引用。如果每个包/订阅类型可能有超过 1 个提供程序 - 那么您需要额外的包提供程序关系表。

最后是覆盖。这是一个比较棘手的部分,因为它的要求很弱,但是一旦它们覆盖了包参数,我建议保持实体结构与包相同。

您甚至可以将其放入同一个包裹表中,按日期对它们进行排序,或分配它们的权重,始终保留权重最低的默认包裹记录。然后,当您创建覆盖时,您复制除覆盖字段之外的整个默认记录,并为其分配下一个权重(或当前日期),当您查询它时 - 将其分组并获取 MAX()。

本身没有电子邮件实体 - 但您在需求部分中没有提及它。

所以,差不多就是这样:帐户、订阅、(可选)帐户订阅、包、提供商、(可选)包提供商、(可选,可以合并到包中)覆盖。

适合你吗?

关于具有覆盖组设置和允许设置的 MySql DB 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42100707/

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