0

我必须设计一个数据库,将有关打印机资源使用情况的一些信息记录在 mysql 数据库中。设计数据库的最佳方法是什么?我不想为每个学生创建一个表,因为大约有 6000 个表,并且如果要维护档案,这些表每年都会不断增长。此外,根据学生的注册号创建表格也很困难。有没有比存储打印细节的多值属性更好的方法。请提出一些解决方案。查询也应该是有效的。

4

2 回答 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 回答