【问题标题】:db中的学生学期课程表设计[关闭]
【发布时间】:2022-01-23 16:35:10
【问题描述】:

一名学生与单个课程相关联。我有唯一的约束检查单个学生单个程序和单个学期。但最终学生的学期会延长。

列名是 student_id、program_id 和学期。

当学生进入更高学期时,我如何插入数据。我是否添加学期开始和结束日期,然后检查所有 5 列是否具有唯一约束。

欢迎提出任何建议。

【问题讨论】:

  • 如果您在此处粘贴您的模型架构,那肯定会更容易。
  • @jorzel 我目前没有具体的模型架构。我正在寻求建议。如果你能帮我建立一个,我可以得到一些见解。

标签: sql postgresql sqlalchemy


【解决方案1】:

如果您对学期也有唯一限制,则无法在学生进入更高学期时插入数据。您要查找的操作是UPSERT。所以,你要么UPDATE 现有数据,要么DELETEINSERT。但我更喜欢UPSERT

如果您需要存储一个学生通过所有学期的历史数据,您最好将其存储在另一个表中。在这里,您不能声明对学期列的约束。

查看How to UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) in PostgreSQL?

【讨论】:

  • 谢谢。这是我听说的新手术。 UPSERT
猜你喜欢
  • 2019-11-30
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多