0

我正在使用 codeigniter 框架开发一个项目。有不同类型的用户。现在我们有 4 种用户类型。我为每个用户使用不同的注册表

registration_table_user_type1,

registration_table_user_type2,

registration_table_user_type3,

registration_table_user_type4。

但是现在我正在使用一个带有用户名和密码输入字段的登录表单。我想创建一个用于登录身份验证的表。这个表将是这样的

login_table(用户名、密码、user_type、registration_id)

但我担心网站。因为不同类型的用户将有超过 1000000 个用户。我怎样才能编写 mysql 查询来加快我的网站。我需要一些建议,请帮助我。

4

2 回答 2

1

我建议首先尝试规范您的数据库设计。有 4 个不同的表可能具有相似的数据(类型除外)似乎很奇怪。通常会有一个表 (USER),并且在表 USER 中有一列表示类型本身或 TYPE 表的外键。

通过使用单个 USER 表,您可以利用数据库优化(为一个表建立索引)并最大限度地减少开销。

于 2013-10-08T10:47:51.940 回答
0

您的数据库架构未标准化,请将此架构与 innoDB 引擎一起使用

CREATE TABLE `user_group` (
`id` tinyint NOT NULL AUTO_INCREMENT,
`label` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
);

CREATE TABLE `user_account` (
`id` int NOT NULL AUTO_INCREMENT,
`gid` tinyint NOT NULL,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`gid`) REFERENCES user_group(`id`) ON DELETE RESTRICT ON UPDATE CASCADE
);
于 2013-10-08T11:07:20.137 回答