Optimieren einer Weblog-Datenbank?

Valentin-

Erfahrenes Mitglied
Hallo zusammen,
ich habe mir felsenfest ein Projekt vorgenommen, dass ich mit Hilfe von Java und MySQL umsetzen möchte zunächst ein mal habe ich eine Datenbank-Struktur entworfen, die ich euch gerne vorstellen möchte, damit ihr nach Herzenslust daran rummeckern könnten, bin für jede Kritik offen.

Code:
CREATE TABLE annotation (
	anid int(10) NOT NULL auto_incement,
	anbody text NOT NULL DEFAULT ''
	anuser varchar(20) NOT NULL DEFAULT '',
	anmail varchar(30) NOT NULL DEFAULT '',
	anmember int(10) NOT NULL DEFAULT '',
	anitem int(10) NOT NULL DEFAULT '',
	antime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
	anhost varchar(100) NOT NULL,
	anip varchar(50) NOT NULL,
	anblog int(10) NOT NULL DEFAULT '0',
  	PRIMARY KEY(anid),
  	INDEX(anitem)
  	) TYPE=INNODB;
  	
CREATE TABLE article (
	aid int(10) NOT NULL auto_increment,
	atitle varchar(100) NOT NULL DEFAULT '',
	abody text NOT NULL DEFAULT '',
	aaffix text NOT NULL DEFAULT '',
	ablog int(10) NOT NULL DEFAULT '0',
	aauthor int (10) NOT NULL DEFAULT '',
	atime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
	aopen boolean DEFAULT 1,
	idraf boolean DEFAULT 0,
	icat int(10) NOT NULL DEFAULT '0',
	PRIMARY KEY(aid),
	INDEX(ablog),
  	FOREIGN KEY(aid)
		REFERENCES annotation(anitem)
	ON UPDATE NO ACTION ON DELETE RESTRICT
	) TYPE=INNODB;

	

CREATE TABLE blog (
	bid int(10) NOT NULL auto_increment,
	bownerid int(10) NOT NULL DEFAULT '0',
	bname varchar(100) DEFAULT '' NOT NULL,
	bshortname varchar(20) DEFAULT '' NOT NULL,
	bdesc varchar(250) DEFAULT '',
	bcomments boolean DEFAULT 0,
	bmaxcomments int(5) DEFAULT '0',
	btimerelease date,
	burl varchar(200) DEFAULT '0' NOT NULL,
	bpublic boolean DEFAULT 0,
	bdefcat int(11) DEFAULT '0' NOT NULL,
	bnotifytype int(5) DEFAULT '3' NOT NULL,
	ballowdate boolean DEFAULT 0,
	bincludesearch boolean DEFAULT 0,
	PRIMARY KEY(bid),
	INDEX(bownerid),
	INDEX(bdefcat),
	FOREIGN KEY(bid)	
		REFERENCES article(ablog)
	ON UPDATE CASCADE ON DELETE RESTRICT
	) TYPE=INNODB;



CREATE TABLE user (
	uid int(10) NOT NULL auto_increment,
	uname varchar(30)  NOT NULL,
	urealname varchar(30) NOT NULL,
	usurname varchar(30) NOT NULL,
	upassword varchar(30) NOT NULL,
	uemail varchar(40) NOT NULL,
	uurl varchar(50) NOT NULL,
	usig varchar(200) NOT NULL,
	uadmin boolean DEFAULT 0,
	uaarea boolean DEFAULT 0,
	udeflang varchar(20) DEFAULT 'deDE',
	PRIMARY KEY(uid),
	FOREIGN KEY(uid)
		REFERENCES blog(bownerid)
	ON UPDATE CASCADE ON DELETE RESTRICT
	) TYPE=INNODB;

	

CREATE TABLE category (
	cid int(10) NOT NULL auto_increment,
	cblog int(10) NOT NULL DEFAULT '0',
	cname varchar(40) NOT NULL DEFAULT '0',
	cdesc varchar(200) NOT NULL DEFAULT '0',
	INDEX(cid),
	FOREIGN KEY(cblog)
		REFERENCES blog(bdefcat)
	ON UPDATE NO ACTION ON DELETE NO ACTION
	) TYPE=INNODB;



CREATE TABLE team (
	tid int(10) NOT NULL,
	tblog int(10) DEFAULT '',
	tadmin boolean DEFAULT 0,
	INDEX(tid),
	FOREIGN KEY(tid)
		REFERENCES user(uid)
	ON UPDATE CASCADE ON DELETE RESTRICT
	) TYPE=INNODB;

Also mal kurz und bündig:
Was gefällt euch nicht, würdet ihr anders machen?
Was könnte man gegebenenfalls weglassen, noch hinzufügen?
Wie kann man die DB schon im Anfangsstadium optimieren?

Wer interesse hat an diesem Projekt teilzunehmen, kann sich gerne bei mir per ICQ oder PM melden.

Vielen Dank.

Gruß Valentin-
 
Zurück