【问题标题】:Keep the same auto increment id for multiple values为多个值保持相同的自动增量 ID
【发布时间】:2013-02-23 17:11:07
【问题描述】:

我的数据库中有一个名为 university 的表,包含 3 列:“uni id”、“uni name”和“student id”。我添加了一个自动增量值“uni id”。当学生选择大学名称(比如“大学 A”)时,ID 应该为 1,并且“学生 id”将更新为学生的 id。没关系。但是如果另一个用户选择了同一所大学('University A'),'uni id' 将自动更改为 2(显然,它是一个自动增量值是的)。 'uni name' 将保持不变的'University A' 并且新的学生 ID 将被插入到表中。

有什么方法可以为特定的 uni 名称保留相同的 uni id? 例如:

  • uni id |单名 |学生证
  • ---1---|---Uni A---|-----S10----
  • ---1---|---Uni A---|-----S37----

另外,我还有第二张桌子,我可以在那个桌子上传递 uni id 吗?例如:

  • uni id |课程编号
  • ---1---| --CS90---

提前致谢

【问题讨论】:

    标签: mysql auto-increment


    【解决方案1】:

    MyISAM 引擎允许您使用 auto_increment 作为复合 PRIMARY KEY 的一个组件。

    【讨论】:

    • 这可行,但不是一个糟糕的解决方案,imo。规范化您的数据库将为您省去很多潜在的麻烦
    【解决方案2】:

    最好的方法是创建一个额外的表。您需要一张存储大学的表和另一张存储学生的表

    大学表

    uni_id uni_name
    1      uni A
    

    学生桌

    uni_id student_id ID (Primary key)
    1      S10        1
    1      S37        2  
    

    【讨论】:

    • 谢谢。 uni_id 是一个自动增量值吗?我们如何将其传递给学生表?
    • 它将在 Universities 表中保持自动增量,但在学生表中将是 foreign key。您还需要学生表上的主键。
    • 我明白了,我现在就换桌子。但是 uni id 仍然会不断变化。我有一个表格,学生可以在其中添加他们的 uni 详细信息,因此当学生填写表格并选择 uni 时,uni_id(自动增量值)将始终更改。如果学生选择相同的 uni(即 uni A),那么 uni A 将有多个 uni_id。希望你明白我的意思,谢谢你的帮助
    猜你喜欢
    • 2020-06-10
    • 2019-02-23
    • 2018-02-08
    • 2016-07-09
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    相关资源
    最近更新 更多