首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

怎么设计这种表结构

2012-04-05 
如何设计这种表结构?各位好!请帮忙看看如下这种表结构在MySQL如何设置:学生类(Student)int idString nam

如何设计这种表结构?
各位好!请帮忙看看如下这种表结构在MySQL如何设置:
学生类(Student)"
int id;
String name;
Class class;

班级类(Class):
int id;
String name;

请问在MySQL中,如何设计Student表,可以存储Class对象?
谢谢!
 

[解决办法]
班级跟学生的关系是多对一,这个随便你怎么做都可以存储呀。。。。。
table 班级
id,name,code

student 学生
id,stuname,班级ID
[解决办法]
1.用hibernate自动生成,用到注解,这种略过吧,反正你以后也可以会遇到。
2.student{
id int;
name varchar();
class_id int;
}
然后建Class表,建议名字不要叫class,换个名字,接着加外键关联就可以了。你懂的

[解决办法]
像这样的情况属于多对多!你可以抽取一张关联表!存放两个表的外键!并将两个外键设置成联合主键!OK!
[解决办法]

探讨

比如我要查询学生对应的班级,只要在Sql中这样使用就行了:
select t.class.name from Student t

[解决办法]
class的id 放在student 里面,作为外键
[解决办法]
直接class?class是个对象,在数据库中是不能这样滴,不过在java中可以中

Java code
//给个实例吧,不过这个讲就涉及到很多细节了,建议你google,或者看视频,有些代码省略@Entity@Table(name="t_student")public class Student {    private int id;    private String name;    private Teacher teacher;        @Id    @GeneratedValue //设置主键,并且自动增长    public int getId() {        return id;    }        public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }        @ManyToOne    @JoinColumn(name="teacherId")    public Teacher getTeacher() {        return teacher;    }            public void setTeacher(Teacher teacher) {        this.teacher = teacher;    }}//Teacher.java 这里本来不是一对多的关系,为了写实例方便,表示一个学生只有拥有一个老师@Entity@Table(name="t_teacher")public class Teacher {    private int id;    private String name;        @Id    @GeneratedValue    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }        public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}//import省略,即使我写上,你也不能直接运行,要导jar包的//如果是只用到hibernate,没用到spring的话,还要单独一个hibernate的配置文件,祝你好运。。。 

热点排行