我在我的网站上创建了一个表单,用户可以在其中创建一个帐户。我将所有内容保存到连接到网站的数据库中。 这是我创建表的方式:
CREATE TABLE Customer(
CID int(9) not null PRIMARY KEY AUTO_INCREMENT,
Email VARCHAR(100) not null,
CustomerName VARCHAR(42) not null,
Password VARCHAR(42) not null,
Phone VARCHAR(42)
);
由于用户以后会使用电子邮件和密码登录网站,因此我不希望重复输入电子邮件。 现在我的问题是我应该使表中的列电子邮件变得唯一还是应该检查输入的电子邮件是否已经存在于数据库中(使用PHP)?有什么区别吗?
答案 0 :(得分:1)
例如,使电子邮件和用户名具有唯一性
CREATE TABLE `Customer` (
`CID` INT(9) NOT NULL AUTO_INCREMENT,
`Email` VARCHAR(100) NOT NULL,
`CustomerName` VARCHAR(42) NOT NULL,
`Password` VARCHAR(42) NOT NULL,
`Phone` VARCHAR(42) NULL DEFAULT NULL,
PRIMARY KEY (`CID`),
UNIQUE INDEX `Email` (`Email`),
UNIQUE INDEX `CustomerName` (`CustomerName`)
);
当然,您还必须在应用程序中对其进行检查,但这会阻止它。