0

是否可以创建一个表,其中两列代表一个主键,其中一个是自动编号但不是不同的。类似于 (teacherID,schoolID(FK),teacherName) 的东西,其中前两个是主键,第一个是自动编号。当插入来自不同学校的教师时,teacherID 自动增量应取决于学校。

插入示例

  • 1, 1, 史蒂文
  • 2、1、莱斯利
  • 1、2、玛丽亚

我知道可以使 SQL 查询像这样插入,但是在表设置中可以吗?

4

2 回答 2

1

你这样说:Something like (teacherID,schoolID(FK),teacherName) where first two are primary key and first one is autonumber

听起来你在老师和学校之间有多对多的关系。这很正常。您使用 3 个表来完成此操作 - 教师表、学校表和连接表。让我们称之为教师学校。它将包含其他 2 个表的外键,以及您要存储的任何其他内容(isActive、dateCreated 等)。它的主键是两个外键加上你需要使它唯一的任何其他东西。

要将记录输入到teacherSchool 表中,您必须向插入查询传递必要的值。这将被纳入您用于数据输入的任何内容中。事实上,即使使用您当前的设计,您也需要一些可以让您的数据输入人员识别学校的东西。无论是什么都应该将 schoolID 传递给您的插入查询。

于 2015-12-23T20:40:42.693 回答
0

这不是自动编号的工作方式。如果你想做这样的事情,你将不得不自己计算。但我必须提醒你不要这样做。我认为这是一张教师桌,你想做的是一个坏主意,因为

  1. 每个老师都应该有自己独特的钥匙。
  2. 将键设为复合键是一个坏主意,其中键的一部分是可以随时间变化的外键。
于 2015-12-23T18:15:56.600 回答