Linux QoS DB schema: Porovnání verzí
Z Freenetis Wiki
Řádek 1: | Řádek 1: | ||
Schema je na obrázku níže: | Schema je na obrázku níže: | ||
[[Soubor:linux_qos_db_schema.png]] | [[Soubor:linux_qos_db_schema.png]] | ||
+ | |||
+ | Pro pochopení schematu je vhodné podívat se nejdřív na prezentaci o Linux QoS a U32 hashtables: | ||
+ | |||
+ | =SDL - SQL= | ||
+ | CREATE TABLE qos_qdiscs ( | ||
+ | id INT AUTO_INCREMENT NOT NULL, | ||
+ | qos_qdisc_parent_id INT NOT NULL, | ||
+ | interface_id INT NOT NULL, | ||
+ | qdisc_id INT, | ||
+ | Parent_id INT NOT NULL, | ||
+ | PRIMARY KEY (id) | ||
+ | ); | ||
+ | |||
+ | |||
+ | CREATE INDEX fk_qos_qdiscs_qos_qdiscs1 USING BTREE | ||
+ | ON qos_qdiscs | ||
+ | ( qos_qdisc_parent_id ASC ); | ||
+ | |||
+ | CREATE INDEX fk_qos_qdiscs_devices1 USING BTREE | ||
+ | ON qos_qdiscs | ||
+ | ( interface_id ASC ); | ||
+ | |||
+ | CREATE TABLE qos_hash_tables ( | ||
+ | id INT AUTO_INCREMENT NOT NULL, | ||
+ | htid INT, | ||
+ | buckets INT, | ||
+ | qos_qdiscs_id INT NOT NULL, | ||
+ | PRIMARY KEY (id) | ||
+ | ); | ||
+ | |||
+ | |||
+ | CREATE INDEX fk_qos_hash_tables_qos_qdiscs1 USING BTREE | ||
+ | ON qos_hash_tables | ||
+ | ( qos_qdiscs_id ASC ); | ||
+ | |||
+ | CREATE TABLE qos_classes ( | ||
+ | id INT AUTO_INCREMENT NOT NULL, | ||
+ | rate INT, | ||
+ | ceil INT, | ||
+ | classid INT, | ||
+ | direction TINYINT, | ||
+ | qos_qdiscs_id INT NOT NULL, | ||
+ | PRIMARY KEY (id) | ||
+ | ); | ||
+ | |||
+ | ALTER TABLE qos_classes MODIFY COLUMN classid INTEGER COMMENT 'd it must be de'; | ||
+ | |||
+ | |||
+ | CREATE INDEX fk_qos_classes_qos_qdiscs1 USING BTREE | ||
+ | ON qos_classes | ||
+ | ( qos_qdiscs_id ASC ); | ||
+ | |||
+ | CREATE TABLE subnets_has_qos_classes ( | ||
+ | subnets_id INT NOT NULL, | ||
+ | qos_classes_id INT NOT NULL, | ||
+ | PRIMARY KEY (subnets_id, qos_classes_id) | ||
+ | ); | ||
+ | |||
+ | |||
+ | CREATE INDEX fk_subnets_has_qos_classes_qos_classes1 USING BTREE | ||
+ | ON subnets_has_qos_classes | ||
+ | ( qos_classes_id ASC ); | ||
+ | |||
+ | CREATE TABLE qos_filters ( | ||
+ | id INT AUTO_INCREMENT NOT NULL, | ||
+ | filterid INT, | ||
+ | priority INT, | ||
+ | qos_hash_tables_id INT NOT NULL, | ||
+ | qos_classes_id INT NOT NULL, | ||
+ | PRIMARY KEY (id) | ||
+ | ); | ||
+ | |||
+ | |||
+ | CREATE INDEX fk_qos_filters_qos_hash_tables1 USING BTREE | ||
+ | ON qos_filters | ||
+ | ( qos_hash_tables_id ASC ); | ||
+ | |||
+ | CREATE INDEX fk_qos_filters_qos_classes1 USING BTREE | ||
+ | ON qos_filters | ||
+ | ( qos_classes_id ASC ); | ||
+ | |||
+ | CREATE TABLE members_has_qos_classes ( | ||
+ | members_id INT NOT NULL, | ||
+ | qos_classes_id INT NOT NULL, | ||
+ | PRIMARY KEY (members_id, qos_classes_id) | ||
+ | ); | ||
+ | |||
+ | |||
+ | CREATE INDEX fk_members_has_qos_classes_qos_classes1 USING BTREE | ||
+ | ON members_has_qos_classes | ||
+ | ( qos_classes_id ASC ); | ||
+ | |||
+ | CREATE TABLE ip_addresses_has_qos_classes ( | ||
+ | ip_addresses_id INT NOT NULL, | ||
+ | qos_classes_id INT NOT NULL, | ||
+ | PRIMARY KEY (ip_addresses_id, qos_classes_id) | ||
+ | ); | ||
+ | |||
+ | |||
+ | CREATE INDEX fk_ip_addresses_has_qos_classes_qos_classes1 USING BTREE | ||
+ | ON ip_addresses_has_qos_classes | ||
+ | ( qos_classes_id ASC ); | ||
+ | |||
+ | ALTER TABLE subnets_has_qos_classes ADD CONSTRAINT fk_subnets_has_classes_subnets1 | ||
+ | FOREIGN KEY (subnets_id) | ||
+ | REFERENCES subnets (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE members_has_qos_classes ADD CONSTRAINT fk_members_has_qos_classes_members1 | ||
+ | FOREIGN KEY (members_id) | ||
+ | REFERENCES members (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE ip_addresses_has_qos_classes ADD CONSTRAINT fk_ip_addresses_have_classes_ip_addresses1 | ||
+ | FOREIGN KEY (ip_addresses_id) | ||
+ | REFERENCES ip_addresses (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE qos_qdiscs ADD CONSTRAINT fk_qdiscs_ifaces | ||
+ | FOREIGN KEY (interface_id) | ||
+ | REFERENCES interfaces (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE qos_classes ADD CONSTRAINT fk_classes_qdiscs1 | ||
+ | FOREIGN KEY (id) | ||
+ | REFERENCES qos_qdiscs (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE qos_hash_tables ADD CONSTRAINT fk_hash_tables_qdiscs1 | ||
+ | FOREIGN KEY (id) | ||
+ | REFERENCES qos_qdiscs (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE qos_qdiscs ADD CONSTRAINT fk_qdiscs_qdiscs1 | ||
+ | FOREIGN KEY (Parent_id) | ||
+ | REFERENCES qos_qdiscs (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE qos_filters ADD CONSTRAINT fk_filters_hash_tables1 | ||
+ | FOREIGN KEY (qos_hash_tables_id) | ||
+ | REFERENCES qos_hash_tables (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE ip_addresses_has_qos_classes ADD CONSTRAINT fk_ip_addresses_has_classes_classes1 | ||
+ | FOREIGN KEY (qos_classes_id) | ||
+ | REFERENCES qos_classes (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE members_has_qos_classes ADD CONSTRAINT fk_members_has_classes_classes1 | ||
+ | FOREIGN KEY (qos_classes_id) | ||
+ | REFERENCES qos_classes (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE qos_filters ADD CONSTRAINT fk_filters_classes1 | ||
+ | FOREIGN KEY (qos_classes_id) | ||
+ | REFERENCES qos_classes (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; | ||
+ | |||
+ | ALTER TABLE subnets_has_qos_classes ADD CONSTRAINT fk_subnets_has_classes_classes1 | ||
+ | FOREIGN KEY (qos_classes_id) | ||
+ | REFERENCES qos_classes (id) | ||
+ | ON DELETE NO ACTION | ||
+ | ON UPDATE NO ACTION; |
Verze z 22. 10. 2010, 20:56
Pro pochopení schematu je vhodné podívat se nejdřív na prezentaci o Linux QoS a U32 hashtables:
SDL - SQL
CREATE TABLE qos_qdiscs ( id INT AUTO_INCREMENT NOT NULL, qos_qdisc_parent_id INT NOT NULL, interface_id INT NOT NULL, qdisc_id INT, Parent_id INT NOT NULL, PRIMARY KEY (id) );
CREATE INDEX fk_qos_qdiscs_qos_qdiscs1 USING BTREE ON qos_qdiscs ( qos_qdisc_parent_id ASC );
CREATE INDEX fk_qos_qdiscs_devices1 USING BTREE ON qos_qdiscs ( interface_id ASC );
CREATE TABLE qos_hash_tables ( id INT AUTO_INCREMENT NOT NULL, htid INT, buckets INT, qos_qdiscs_id INT NOT NULL, PRIMARY KEY (id) );
CREATE INDEX fk_qos_hash_tables_qos_qdiscs1 USING BTREE ON qos_hash_tables ( qos_qdiscs_id ASC );
CREATE TABLE qos_classes ( id INT AUTO_INCREMENT NOT NULL, rate INT, ceil INT, classid INT, direction TINYINT, qos_qdiscs_id INT NOT NULL, PRIMARY KEY (id) );
ALTER TABLE qos_classes MODIFY COLUMN classid INTEGER COMMENT 'd it must be de';
CREATE INDEX fk_qos_classes_qos_qdiscs1 USING BTREE ON qos_classes ( qos_qdiscs_id ASC );
CREATE TABLE subnets_has_qos_classes ( subnets_id INT NOT NULL, qos_classes_id INT NOT NULL, PRIMARY KEY (subnets_id, qos_classes_id) );
CREATE INDEX fk_subnets_has_qos_classes_qos_classes1 USING BTREE ON subnets_has_qos_classes ( qos_classes_id ASC );
CREATE TABLE qos_filters ( id INT AUTO_INCREMENT NOT NULL, filterid INT, priority INT, qos_hash_tables_id INT NOT NULL, qos_classes_id INT NOT NULL, PRIMARY KEY (id) );
CREATE INDEX fk_qos_filters_qos_hash_tables1 USING BTREE ON qos_filters ( qos_hash_tables_id ASC );
CREATE INDEX fk_qos_filters_qos_classes1 USING BTREE ON qos_filters ( qos_classes_id ASC );
CREATE TABLE members_has_qos_classes ( members_id INT NOT NULL, qos_classes_id INT NOT NULL, PRIMARY KEY (members_id, qos_classes_id) );
CREATE INDEX fk_members_has_qos_classes_qos_classes1 USING BTREE ON members_has_qos_classes ( qos_classes_id ASC );
CREATE TABLE ip_addresses_has_qos_classes ( ip_addresses_id INT NOT NULL, qos_classes_id INT NOT NULL, PRIMARY KEY (ip_addresses_id, qos_classes_id) );
CREATE INDEX fk_ip_addresses_has_qos_classes_qos_classes1 USING BTREE ON ip_addresses_has_qos_classes ( qos_classes_id ASC );
ALTER TABLE subnets_has_qos_classes ADD CONSTRAINT fk_subnets_has_classes_subnets1 FOREIGN KEY (subnets_id) REFERENCES subnets (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE members_has_qos_classes ADD CONSTRAINT fk_members_has_qos_classes_members1 FOREIGN KEY (members_id) REFERENCES members (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE ip_addresses_has_qos_classes ADD CONSTRAINT fk_ip_addresses_have_classes_ip_addresses1 FOREIGN KEY (ip_addresses_id) REFERENCES ip_addresses (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE qos_qdiscs ADD CONSTRAINT fk_qdiscs_ifaces FOREIGN KEY (interface_id) REFERENCES interfaces (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE qos_classes ADD CONSTRAINT fk_classes_qdiscs1 FOREIGN KEY (id) REFERENCES qos_qdiscs (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE qos_hash_tables ADD CONSTRAINT fk_hash_tables_qdiscs1 FOREIGN KEY (id) REFERENCES qos_qdiscs (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE qos_qdiscs ADD CONSTRAINT fk_qdiscs_qdiscs1 FOREIGN KEY (Parent_id) REFERENCES qos_qdiscs (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE qos_filters ADD CONSTRAINT fk_filters_hash_tables1 FOREIGN KEY (qos_hash_tables_id) REFERENCES qos_hash_tables (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE ip_addresses_has_qos_classes ADD CONSTRAINT fk_ip_addresses_has_classes_classes1 FOREIGN KEY (qos_classes_id) REFERENCES qos_classes (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE members_has_qos_classes ADD CONSTRAINT fk_members_has_classes_classes1 FOREIGN KEY (qos_classes_id) REFERENCES qos_classes (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE qos_filters ADD CONSTRAINT fk_filters_classes1 FOREIGN KEY (qos_classes_id) REFERENCES qos_classes (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE subnets_has_qos_classes ADD CONSTRAINT fk_subnets_has_classes_classes1 FOREIGN KEY (qos_classes_id) REFERENCES qos_classes (id) ON DELETE NO ACTION ON UPDATE NO ACTION;