HANDS ON DOCTRINE :: An Interactive One Hour Tutorial on Doctrine's ORM for PHP
---------------------------------------------------------------------------------------------
/* * File: news.sql * Date: 03/04/2008 * Version: 0.0.1 * Author: Jaume Teixi <jaume@teixi.net> Copyright (c) 2008 Jaume Teixi
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
DROP INDEX id ON SYS_LANG; DROP INDEX T_LANG_2 ON TRANSL_LANG; DROP INDEX T_NEWS_2 ON TRANSL_NEWS;
DROP TABLE IF EXISTS TRANSL_NEWS; DROP TABLE IF EXISTS TRANSL_LANG; DROP TABLE IF EXISTS SYS_LANG; DROP TABLE IF EXISTS CONT_NEWS;
CREATE TABLE CONT_NEWS ( id INT UNSIGNED NOT NULL AUTO_INCREMENT , active BOOLEAN NOT NULL DEFAULT 0 , created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , creator CHAR(250) NOT NULL , updated TIMESTAMP NOT NULL DEFAULT '0000-00-00' , updater CHAR(250) NOT NULL , PRIMARY KEY (id) ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE SYS_LANG ( id CHAR(5) NOT NULL , active BOOLEAN NOT NULL DEFAULT 0 , updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , updater CHAR(250) NOT NULL , PRIMARY KEY (id) ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE TRANSL_LANG ( id_lang CHAR(5) NOT NULL , id_trad CHAR(5) NOT NULL , description CHAR(100) NOT NULL , PRIMARY KEY (id_lang, id_trad) , INDEX (id_lang) , CONSTRAINT FK_TRANSL_LANG_1 FOREIGN KEY (id_lang) REFERENCES SYS_LANG (id) , INDEX (id_trad) , CONSTRAINT FK_TRANSL_LANG_2 FOREIGN KEY (id_trad) REFERENCES SYS_LANG (id) ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE TRANSL_NEWS ( id_news INT UNSIGNED NOT NULL , id_lang CHAR(5) NOT NULL , title CHAR(250) , body VARCHAR(10000) , PRIMARY KEY (id_lang, id_news) , INDEX (id_lang) , CONSTRAINT FK_TRANSL_NEWS_2 FOREIGN KEY (id_lang) REFERENCES SYS_LANG (id) , INDEX (id_news) , CONSTRAINT FK_TRANSL_NEWS_1 FOREIGN KEY (id_news) REFERENCES CONT_NEWS (id) ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
-- view done by hand
DROP VIEW IF EXISTS VIEW_NEWS;
CREATE OR REPLACE VIEW VIEW_NEWS as( select * from CONT_NEWS, TRANSL_NEWS where CONT_NEWS.id = TRANSL_NEWS.id_news );
---------------------------------------------------------------------------------------------
... back ...
|