0

プリンタ リソースの使用に関する情報を mysql データベースに記録するデータベースを設計する必要があります。データベースを設計する最良の方法は何ですか? 約 6000 のテーブルがあり、アーカイブを維持する場合は毎年増加し続けるため、生徒ごとにテーブルを作成したくありません。また、学生の登録数に基づいてテーブルを作成することも困難です。印刷の詳細について、多値属性を保存するよりも良い方法はありますか。いくつかの解決策を提案してください。また、クエリも効果的です。

4

2 に答える 2

1

生徒ごとに異なるテーブルを作成する必要はありません。登録番号 (Regno-PrimaryKey としましょう) で識別される学生の個人情報を含むテーブル STUDENT を作成するだけです。

次に、次のスキーマを持つ別のテーブル リソース:

これは機能し、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 に答える