在为私立学校创建学生管理应用程序时,添加学生时,用户必须指定学生来自哪所公立学校,之后应用程序根据他们来自的学校显示有关学生的信息,问题是face是当用户为同一所学校输入不同的名字时(例如:“abc-paris”,“abc / paris”和“abc paris”将被视为3个不同的学校而不是),我想到的解决方案是做一个选择而不是示例文本输入(在HTML中),但我发现这是一个糟糕的解决方案,因为:
那么你有什么更好的解决方案吗?
答案 0 :(得分: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。
用户界面应包含一个下拉框,供用户选择学校,即SELECT ID,Name FROM School。名称应显示在每个学校的下拉框中,用于选择学校的ID或将学校插入数据库。