作者 主題: phpbb的schema 在pgsql 與mysql裡的不同....  (閱讀 3035 次)

0 會員 與 1 訪客 正在閱讀本文。

mephi

  • 憂鬱的高中生
  • ***
  • 文章數: 102
    • 檢視個人資料
小弟最近在比對phpbb2 的schema ,分別在PostgreSQL 與MySQL 上面放了一套.....
結果發現一件事情:

在PostgreSQL裡頭,phpBB2 用來做數列(編號?)的方式是先create 一個sequence 再去開欄位,使用nextval來處理,而在MySQL裡頭就直接使用auto_increment來做。

那接下來的地方是問題:

在PostgreSQL裡頭,總共定義了15個SEQUENCE,但是在MySQL裡頭只有發現14個auto_increment ....其中有關user_id的部分PostgreSQL有做SEQUENCE來處理,但是MySQL裡頭是啥都不做.......是在MySQL裡頭不需要自動加值嗎?還是有什麼其他的考量?

小弟才剛剛接觸Database 而已,如果有用語或表達方式不佳的地方,還請不吝指正。

我所使用的是phpBB2 2.0.15,PostgreSQL 是8.0.3,MySQL是4.1.11。附上schema裡頭兩邊關於user_id的處理法。

代碼: [選擇]
# --------------------------------------------------------
#
# Table structure for table 'phpbb_users'  <--MySQL
#
CREATE TABLE phpbb_users (
   user_id mediumint(8) NOT NULL,
   user_active tinyint(1) DEFAULT '1',
   username varchar(25) NOT NULL,
   user_password varchar(32) NOT NULL,
   user_session_time int(11) DEFAULT '0' NOT NULL,
   user_session_page smallint(5) DEFAULT '0' NOT NULL,
   user_lastvisit int(11) DEFAULT '0' NOT NULL,
   user_regdate int(11) DEFAULT '0' NOT NULL,
   user_level tinyint(4) DEFAULT '0',
   user_posts mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
   user_timezone decimal(5,2) DEFAULT '0' NOT NULL,
   user_style tinyint(4),
   user_lang varchar(255),
   user_dateformat varchar(14) DEFAULT 'd M Y H:i' NOT NULL,
   user_new_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
   user_unread_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
   user_last_privmsg int(11) DEFAULT '0' NOT NULL,
   user_emailtime int(11),
   user_viewemail tinyint(1),
   user_attachsig tinyint(1),
   user_allowhtml tinyint(1) DEFAULT '1',
   user_allowbbcode tinyint(1) DEFAULT '1',
   user_allowsmile tinyint(1) DEFAULT '1',
   user_allowavatar tinyint(1) DEFAULT '1' NOT NULL,
   user_allow_pm tinyint(1) DEFAULT '1' NOT NULL,
   user_allow_viewonline tinyint(1) DEFAULT '1' NOT NULL,
   user_notify tinyint(1) DEFAULT '1' NOT NULL,
   user_notify_pm tinyint(1) DEFAULT '0' NOT NULL,
   user_popup_pm tinyint(1) DEFAULT '0' NOT NULL,
   user_rank int(11) DEFAULT '0',
   user_avatar varchar(100),
   user_avatar_type tinyint(4) DEFAULT '0' NOT NULL,
   user_email varchar(255),
   user_icq varchar(15),
   user_website varchar(100),
   user_from varchar(100),
   user_sig text,
   user_sig_bbcode_uid char(10),
   user_aim varchar(255),
   user_yim varchar(255),
   user_msnm varchar(255),
   user_occ varchar(100),
   user_interests varchar(255),
   user_actkey varchar(32),
   user_newpasswd varchar(32),
   PRIMARY KEY (user_id),
   KEY user_session_time (user_session_time)
);



代碼: [選擇]
PostgreSQL:
CREATE SEQUENCE phpbb_users_id_seq start 3 increment 1 maxvalue 2147483647 minvalue 1 cache 1;

/* --------------------------------------------------------
  Table structure for table phpbb_users
-------------------------------------------------------- */
CREATE TABLE phpbb_users (
   user_id int4 DEFAULT nextval('phpbb_users_id_seq'::text) NOT NULL,
   user_active int2,
   username varchar(25) DEFAULT '' NOT NULL,
   user_regdate int4 DEFAULT '0' NOT NULL,
   user_password varchar(32) DEFAULT '' NOT NULL,
   user_session_time int4 DEFAULT '0' NOT NULL,
   user_session_page int2 DEFAULT '0' NOT NULL,
   user_lastvisit int4 DEFAULT '0' NOT NULL,
   user_email varchar(255),
   user_icq varchar(15),
   user_website varchar(100),
   user_occ varchar(100),
   user_from varchar(100),
   user_interests varchar(255),
   user_sig text,
   user_sig_bbcode_uid char(10),
   user_style int4,
   user_aim varchar(255),
   user_yim varchar(255),
   user_msnm varchar(255),
   user_posts int4 DEFAULT '0' NOT NULL,
   user_new_privmsg int2 DEFAULT '0' NOT NULL,
   user_unread_privmsg int2 DEFAULT '0' NOT NULL,
   user_last_privmsg int4 DEFAULT '0' NOT NULL,
   user_emailtime int4,
   user_viewemail int2,
   user_attachsig int2,
   user_allowhtml int2 DEFAULT '1',
   user_allowbbcode int2 DEFAULT '1',
   user_allowsmile int2 DEFAULT '1',
   user_allow_pm int2 DEFAULT '1' NOT NULL,
   user_allowavatar int2 DEFAULT '1' NOT NULL,
   user_allow_viewonline int2 DEFAULT '1' NOT NULL,
   user_rank int4 DEFAULT '0',
   user_avatar varchar(100),
   user_avatar_type int2 DEFAULT '0' NOT NULL,
   user_level int4 DEFAULT '1',
   user_lang varchar(255),
   user_timezone decimal(5) DEFAULT '0' NOT NULL,
   user_dateformat varchar(14) DEFAULT 'd M Y H:m' NOT NULL,
   user_notify_pm int2 DEFAULT '0' NOT NULL,
   user_popup_pm int2 DEFAULT '0' NOT NULL,
   user_notify int2,
   user_actkey varchar(32),
   user_newpasswd varchar(32),
   CONSTRAINT phpbb_users_pkey PRIMARY KEY (user_id)
);

CREATE  INDEX user_session_time_phpbb_users_index ON phpbb_users (user_session_time);