ciao a tutti avevo un piccolo dubbio.
devo creare delle tabelle con un campo che č foreign key rispetto a un'altra tabella, piccolo esempio:
Codice PHP:
# --------------------------------------------------------
#
# Table structure for table 'users'
#
CREATE TABLE users (
user_id mediumint(8) NOT NULL auto_increment,
username varchar(50) NOT NULL,
user_password varchar(32) NOT NULL,
PRIMARY KEY (user_id)
) TYPE=INNODB;
# --------------------------------------------------------
#
# Table structure for table 'news'
#
CREATE TABLE news (
news_id mediumint(8) UNSIGNED NOT NULL auto_increment,
news_time INT(11) DEFAULT '0' NOT NULL,
news_userid varchar(50),
news_type varchar(20) NOT NULL,
news_subject char(60),
news_text text,
PRIMARY KEY (news_id),
FOREIGN KEY (news_userid) REFERENCES users(user_id)
) TYPE=INNODB;
# --------------------------------------------------------
#
# Table structure for table 'articoli'
#
CREATE TABLE articoli (
articolo_id mediumint(8) UNSIGNED NOT NULL auto_increment,
articolo_time INT(11) DEFAULT '0' NOT NULL,
articolo_userid varchar(50),
news_type varchar(20) NOT NULL,
articolo_subject char(60),
articolo_text text,
PRIMARY KEY (articolo_id),
FOREIGN KEY (articolo_userid) REFERENCES users(user_id)
) TYPE=INNODB;
Il funzionamento č banale: la tabella utenti contiene tutti gli utenti e gli articoli hanno un "riferimento" all'utente che l'ha scritto.
Ho letto in vari tutorial, che per usare foreign key bisogna usare tabelle di tipo innodb, ma scuriosando in altre tabelle (p.e. del forum phpbb) vedo che non sono usati reference key.
domanda: il database di per sč č molto piccolo: nell'odinde di qualche decina di utenti e del centinaio di news/articoli quindi non ci sarebbero grossi problemi prestazionali a fare join di tabelle, ma mi chiedo: č davvero necessario usare foreign key?
Altra cosa sono le date, inizialemente avevo messo il campo che deve contenere la data come DATE_FORMAT, ma sempre "scopiazzando" da phpbb ho visto che le date sono memorizzate come interi INT(11) e sinceramente non ne capisco l'utilitą immediata.
Ringrazio a chi sappia chiarire i miei dubbi