相同的主键是不好的做法?

Ale*_*lex 7 php mysql

我正在尝试创建一个用户可以注册并创建配置文件的站点,因此我在数据库中使用两个MySQL表,例如users和user_profile.

该users表有一个auto increment primary key叫user_id.

该user_profile表具有相同的primary key名称,user_id但它不是auto increment.

*请参阅说明为什么我有多个表格.

当用户注册时,来自注册表单的数据被插入到用户中,然后last_insert_id()输入到表的user_id字段中user_profile.我使用事务来确保始终发生这种情况.

我的问题是,这是不好的做法吗?

即使一个用户只能拥有一个配置文件,我是否可以unique auto increment primary key使用该user_profile表?

也许创建像这样的数据库有其他缺点?

我很感激,如果有人能解释为什么这是一个问题,或者它是好的,我想确保我的数据库尽可能高效.

注意:我正在为user和user_profile使用单独的表,因为user_profile包含可能为null的字段,并且由于数据显示在公共配置文件中,因此将比用户表请求更多.

也许这也是不好的做法,他们应该被归为一张桌子?

Wes*_*orp 11

我发现这是一个很好的方法,如果你使用外键关系我会给予奖励积分,并且最好在从用户表中删除用户时级联.

由于在一个表中分离了核心用户数据,而在另一个表中分离了选项配置文件数据 - 很好的工作.没有什么比这更加令人烦恼的50场空龙值90%空值.