Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->Linux程序设计 ->正文

锋线上的冲杀——论Linux数据库大比拚

来源: 作者: 时间:2007-04-11 点击: [收藏] [投稿]

据库设计

编者按:这是涉及可自由地获得的Linux DBMS的系列文章的第二部分。

为了测试并比较3个数据库管理系统,我当然需要一个数据库来管理他们。在读完了《SQL傻瓜书》后,我有了一些怎么样设计现实的数据库的基本知识,因此我拣选了一特别无聊的真实世界情形(一个因特网书店,其他?)并且写下了一个小型数据库设计以便探讨一点Sql的能力。

在这个数据库里有5个表,BOOK保存可得到的书的登记信息;CUSTOMER包含登记的顾客。对每份订单,BOOKORDER创建一行,参照其顾客。对每个定购的项目,在ORDER_POSITION里引用它的订单号。作为一种奖励,针对书的排名我增加了一RATING表。

下列的SQL代码可装入到一个数据库系统的SQL监控程序并且被接受应该没有任何问题。所有的表在创建前被删除因此确保他们不会在创建之前已经存在。

 
DROP TABLE BOOK; 
CREATE TABLE BOOK ( 
ARTICLE_NO INTEGER PRIMARY KEY, 
AUTHOR_FIRST_NAMES CHARACTER(30), 
AUTHOR_LAST_NAMES CHARACTER(30), 
TITLE CHARACTER(30), 
ISBN CHARACTER(13) UNIQUE, 
WHOLESALE_PRICE NUMERIC(4,2), 
RETAIL_PRICE NUMERIC(4,2), 
COPIES_AVAILABLE INTEGER 
); 
DROP TABLE CUSTOMER; 
CREATE TABLE CUSTOMER ( 
CUSTOMER_NO INTEGER PRIMARY KEY, 
FIRST_NAMES CHARACTER(30), 
LAST_NAMES CHARACTER(30), 
STREET CHARACTER(30), 
HOUSE_NO SMALLINT, 
POSTCODE CHARACTER(7), 
TOWN CHARACTER(30), 
ISO_COUNTRY_CODE CHARACTER(2) 
); 
DROP TABLE BOOKORDER; 
CREATE TABLE BOOKORDER ( 
ORDER_NO INTEGER PRIMARY KEY, 
CUSTOMER_NO INTEGER NOT NULL, 
ORDERED DATE, 
DELIVERY DATE, 
STATUS CHARACTER(8) 
CHECK (STATUS IN (′ACCEPTED′, 
′DELAYED′, 
′SHIPPED′, 
′RETURNED′, 
′PAID′)), 
CONSTRAINT CUSTOMER_FK FOREIGN KEY (CUSTOMER_NO) 
REFERENCES KUNDE (KUNDENNAME) 
); 
DROP TABLE ORDER_POSITION; 
CREATE TABLE ORDER_POSITION ( 
POSITION_NO INTEGER PRIMARY KEY, 
ORDER_NO INTEGER NOT NULL, 
ARTICLE_NO INTEGER NOT NULL, 
NUMBER SMALLINT, 
CONSTRAINT ORDER_FK FOREIGN KEY (ORDER_NO) 
REFERENCES BOOKORDER (ORDER_NO), 
CONSTRAINT BOOK_FK FOREIGN KEY (ARTICLE_NO) 
REFERENCES BOOK (ARTICLE_NO) 
); 
DROP TABLE RATING; 
CREATE TABLE RATING ( 
RATING_NO INTEGER PRIMARY KEY, 
ARTICLE_NO INTEGER NOT NULL, 
SCORE NUMERIC(1,0), 
COMMENT CHARACTER VARYING(300), 
CONSTRAINT BOOK_FK FOREIGN KEY (ARTICLE_NO) 
REFERENCES BOOK (ARTICLE_NO) 
);
 



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Linux入门普及读物 解读Linux编程库   下一篇:Linux系统套接字编程中存在的五个隐患

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号