gpt4 book ai didi

mysql - 设计我的第一个数据库模式 : suggestion needed

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

关闭。这个问题是off-topic .它目前不接受答案。












想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。

8年前关闭。




Improve this question




这是我的第一个数据库模式设计。我正在尝试为我的部门开发一个小型 Web 应用程序,用于食品成本管理。我这样做是为了我的学习目的。

我部门的食品成本管理如何运作:

  • 成员(member)总数:15
  • 一位管理员记录所有费用。他将每天更新数据库。
  • 每个成员(member)每天只能订购一次。如果有人在任何特定日期有客人,他可以订购多份餐点。
  • 通常成员(member)会提前一到两周支付账单。
  • 一两个人负责从外面带来食物,他们不需要支付午餐费用。运输费用也给了他们。他们的伙食费+交通费平均分配给其他 15 名成员的费用。

  • 数据库查询:

    从管理员的角度来看:
  • 他将管理/添加每日订单。 (表:订单)
  • 他将添加所有成员的付款,这些付款将记入各个成员的“余额”(表:付款)
  • 他将能够在图表中一次查看所有成员的订单/成本历史及其当前余额的概览,为期一个月。
  • 如果任何成员的余额为负数或少于特定金额,它将被通知到管理仪表板。

  • 成员(member)视角:
  • 他将能够一次查看最近一个月的当前余额和订单/成本历史记录。
  • 他将能够看到他最近的 x 次付款历史记录。

  • 根据我上面提到的查询,我尝试设计一个如下图所示的数据库模式:

    database schema diagram

    一些属性的细化:

    EPlatenum:除了订购的盘子数量之外,带来的额外食物盘子的数量。

    Eplatecost:额外一盘食物的费用。这笔费用在 15 名成员的个人费用中平均分配。

    EPersonnum & EPersoncost:额外携带食物的人数及其总成本。费用将平均分配给 15 名成员的个人费用。

    TransCost:运输成本。费用将平均分配给 15 名成员的个人费用。

    问题:
  • 我犯了哪些错误,我该如何克服?
  • 对于我的 DailyList 表,我使用“日期”作为主键。可以使用日期作为主键吗?如果不行,这里的主键可以是什么?
  • 当我要为 30 个月的成本/订单历史填充图表概览时,我假设数据库查询将是巨大的。我应该采取什么方法来优化查询?

  • 我期待收到您关于改进数据库架构的建议。请帮助我纠正我的设计错误并克服它们。感谢您的耐心等待。

    最佳答案

    我的第一印象:

  • 我认为付款应该与订单相关(因为用户为特定订单付费)。
  • 我不知道 DailyList 是什么,但如果可能有两个以上的日期相同(我可以想象它可能是),你不应该将它用作主键。
  • 密码应该用例如编码SHA(所以 varchar 15 要少)。
  • 关于mysql - 设计我的第一个数据库模式 : suggestion needed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16372367/

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