我必须设计一个数据库,将有关打印机资源使用情况的一些信息记录在 mysql 数据库中。设计数据库的最佳方法是什么?我不想为每个学生创建一个表,因为大约有 6000 个表,并且如果要维护档案,这些表每年都会不断增长。此外,根据学生的注册号创建表格也很困难。有没有比存储打印细节的多值属性更好的方法。请提出一些解决方案。查询也应该是有效的。
问问题
1446 次
2 回答
1
无需为每个学生创建不同的表。只需创建一个表 STUDENT,其中将包含由他们的注册号标识的学生的个人详细信息(比如说 Regno-PrimaryKey)。
然后是另一个表资源,它将具有以下架构:-RecNo Integer PK -StudentID Foriegn 键引用到学生表中的 Regno -Usage 或 Data,Time(如果需要)
这将适用,您不必创建 6000 个或更多表。
于 2012-08-28T18:42:31.657 回答
0
您提供的信息很少,但这里有一个镜头:
create table student
(
registration_no varchar(50) not null primary key,
first_name varchar(50),
last_name varchar(50),
registration_year integer not null
);
create table printer
(
printer_id integer not null primary key,
printer_name varchar(50) not null,
ip_address varchar(50) not null,
queue_name varchar(50) not null
);
create unique index idx_printer_name on printer (printer_name);
create table printer_usage
(
usage_id integer not null primary key,
student_reg_no integer not null,
printer_id integer not null,
usage_date datetime not null,
pages integer not null
);
alter table printer_usage
add constraint fk_usage_student
foreign key (student_reg_no) references student (registration_no);
alter table printer_usage
add constraint fk_usage_printer
foreign key (printer_id) references printer (printer_id);
您可能需要向表中添加更多列来存储您需要的所有内容。我只是猜测你可能想要存储的东西。
于 2012-08-28T18:48:26.137 回答