My question is
What is correct to make a relationship 1-1 in MySQL?
The data in the child table must be unique Exists confusing information on the internet about doing this. In my opinion the first form is correct because it is easier.
DROP TABLE IF EXISTS test.users;
CREATE TABLE test.users(
idUser CHAR( 5 ) BINARY NOT NULL,
name VARCHAR( 40 ) NOT NULL,
lastName VARCHAR( 25 ) NOT NULL,
maternalSurname VARCHAR( 25 ) NOT NULL,
PRIMARY KEY( idUser )
)
ENGINE = InnoDB;
--
DROP TABLE IF EXISTS test.activities;
CREATE TABLE test.activities(
user CHAR( 5 ) BINARY NOT NULL,
sessionActive BOOLEAN NOT NULL DEFAULT FALSE,
live DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
attempt TINYINT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY( user ),
FOREIGN KEY( user ) REFERENCES users( idUser )
ON DELETE CASCADE ON UPDATE CASCADE
)
ENGINE = InnoDB;
Another way I found to do
DROP TABLE IF EXISTS test.users;
CREATE TABLE test.users(
idUser CHAR( 5 ) BINARY NOT NULL,
name VARCHAR( 40 ) NOT NULL,
lastName VARCHAR( 25 ) NOT NULL,
maternalSurname VARCHAR( 25 ) NOT NULL,
PRIMARY KEY( idUser )
)
ENGINE = InnoDB;
--
DROP TABLE IF EXISTS test.activities;
CREATE TABLE test.activities(
idActivity INT UNSIGNED NOT NULL,
sessionActive BOOLEAN NOT NULL DEFAULT FALSE,
live DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
attempt TINYINT UNSIGNED NOT NULL DEFAULT 0,
user CHAR( 5 ) BINARY NOT NULL,
UNIQUE( user ),
PRIMARY KEY( idActivity ),
INDEX( user ),
FOREIGN KEY( user ) REFERENCES users( idUser )
ON DELETE CASCADE ON UPDATE CASCADE
)
ENGINE = InnoDB;
what is the correct
Greetings from México!!!!