0

在为私立学校创建学生管理应用程序时,添加学生时,用户必须指定学生来自哪个公立学校,然后应用程序根据学生来自的学校显示有关学生的信息,我面临的问题是何时用户为同一所学校输入不同的名称(例如:“abc-paris”、“abc/paris”和“abc paris”将被视为 3 个不同的学校,而不是),我考虑的解决方案是进行选择而不是示例文本输入(在 html 中),但我发现这是一个糟糕的解决方案,因为:

  • 学校列表将来可能会发生变化,因此我需要创建一个包含学校名称的数据库表。
  • 我需要做一些额外的工作来管理(添加、删除)一所学校。
  • 我发现创建一个只包含一列的数据库表很糟糕。

那么对于这个问题你有更好的解决方案吗?

4

1 回答 1

1

听起来您的数据模型没有标准化。我认为您应该在查找表中列出学校。学校和学生之间应该是一对多的关系。在用户界面上,学校应该是一个下拉框而不是文本框。

这是一个建议的表结构:

CREATE TABLE School (ID int identity, Name varchar(30), primary key (ID))
CREATE TABLE Student (ID int, SchoolID INT, primary key (ID),
FOREIGN KEY (SchoolID) REFERENCES School(Id))

INSERT INTO School (Name) VALUES ('School1')
INSERT INTO School (Name) VALUES ('School2')
INSERT INTO School (Name) VALUES ('School3')

INSERT INTO Student (id,SchoolID) VALUES (1,1)
INSERT INTO Student (id,SchoolID) VALUES (2,1)
INSERT INTO Student (id,SchoolID) VALUES (3,2)
INSERT INTO Student (id,SchoolID) VALUES (4,3)
INSERT INTO Student (id,SchoolID) VALUES (5,3)
INSERT INTO Student (id,SchoolID) VALUES (6,3)

注意有两所学校和六名学生。其中两名学生上学 1,一名学生上学 2,三名学生上学 3。

用户界面应包含一个下拉框供用户选择学校,即选择 ID、名称来自学校。名称应显示在每所学校的下拉框中,以及用于选择学校/将学校插入数据库的 ID。

于 2013-03-02T09:53:15.357 回答