我必须设计一个数据库,其中有关打印机资源使用的一些信息将记录在mysql数据库中。设计数据库的最佳方法是什么? 我不想为每个学生创建一个表格,因为大约有6000个表格,如果要维护档案,这些表格每年都会增长。此外,很难根据学生的注册号创建表格。有没有比存储多值属性更好的方法来打印细节。请提出一些解决方案。查询也应该有效。
答案 0 :(得分:1)
无需为每个学生创建不同的表格。 只需创建一个表学生,其中将包含通过其注册号识别的学生的个人详细信息(例如Regno-PrimaryKey)。
然后是另一个表资源,它将具有以下模式: -RecNo整数PK -StudentID Foriegn键在学生表中引用Regno -用法 或数据,时间(如果需要)
这将起作用,您无需创建6000个或更多表。
答案 1 :(得分: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);
您可能需要向表中添加更多列以存储所需的所有内容。我只想猜你想要存储的东西。