如果我有3张桌子
名为students(student_id,student_name)的表
课程资料:(1,数学),(2,英语),(3,科学)
名为注册(student_id,course_id)的表注册数据:(1,1),(1,2),(1,3),.....学生不能像(1,1),(1,1)那样在同一门课程上注册两次
CREATE TABLE "enrollment" (
"student_id" INTEGER,
"course_id" INTEGER,
FOREIGN KEY("student_id") REFERENCES "students"("student_id"),
PRIMARY KEY("student_id","course_id"),
FOREIGN KEY("course_id") REFERENCES "courses"("course_id")
);
注册课程:
def enroll(student_id,course_id):
dbase.execute(''' INSERT INTO enrollment(student_id,course_id)
VALUES(?,?)''',(student_id,course_id))
dbase.commit()
print("Record inserted")
student_id = int(input('Enter student id: ')
data = cur.execute("SELECT * FROM students WHERE student_id= ?",(student_id,))
found = data.fetchone()
if found:
course_id = int(input("Enter the course id: "))
if course_id >= 1 and course_id <= 3:
enroll(student_id,course_id)
else:
print('please try with valid course id!')
main_menu()
else:
main_menu()
您不需要创建单独的注册
表来为学生设置course_id
,只需将course_id
字段添加到学生
表中即可。但是如果您需要一个单独的表,只需在student_id
字段上添加一个唯一的约束,添加以下一行以创建table注册
脚本,或者更改该表
CONSTRAINT uc_student_id UNIQUE (student_id)
在我的应用程序中,我有以下代码可注册到GCM服务: 当我运行这段代码时,我在服务器中看到我的设备用2个不同的注册了两次,当服务器发送推送时,设备收到2条消息。 这是正常的事情吗?有没有办法确保只有一个?
我怎样才能防止学生注册课程有必修课必须完成它 代码:
问题内容: 我正在尝试编译与Hexagon.java相同的程序包(和目录)中的Board.java,但出现此错误: Board.java的前几行: Hexagon.java的前几行: 我只是看不到我在做什么错。有任何想法吗? 谢谢 问题答案: 我很确定您是从错误的目录中进行编译。 您应该从 源根目录进行 编译 ,而不是从oadams_atroches目录中进行编译。 看一下这个bash会话: 如果
我的客户机/服务器上的推送通知设备注册管理有一个小问题。 同样,这里的问题是,我有两个或更多的注册ID都可以工作(如果我旧的一个在尝试从服务器发布消息时不工作,这不会有问题,因为我可以简单地清理它)。
嘿,我的游戏代码有问题。例如,有没有办法检查我的玩家sprite(英雄)右侧是否与obstacle_sprite组发生碰撞? 我只能弄清楚如何检查一般的碰撞,但如果玩家的右侧与障碍物相撞,我只想获得真正的输出。 在我的代码中,我使用一个隐形精灵作为hitbox,并将玩家吸引到这个隐形精灵中以检查碰撞,但使其看起来像障碍物拒绝玩家移动。
我使用下面的类制作了一个项目符号列表和一个精灵列表。如何检测子弹是否与子画面发生碰撞,然后删除该精灵和子弹?