0

嗨,我对关系数据库有点困惑。这是我目前所理解的:

假设我们有两个表用户和个人资料

用户:用户名,密码配置文件:地址,电话,国家,城市等。

显然应该在这两个表之间创建关系,因为每个用户都有一个地址,电话等。但是 MySql 或 Sql-server 如何知道女巫地址属于哪个用户。

我在一些教程中看到,在这种情况下为配置文件创建了一个额外的字段 users_id。我不明白的是,如果字段中的项目是针对用户表自动生成的?另外我怎么能确定我是没有检索到错误的用户资料?

任何人都可以向我解释这个概念或向我指出一些教程吗?

4

2 回答 2

1

您需要的是任何表中的外键。由于在您提到的示例中它是 1-1 关系(基于用户只能拥有一个配置文件的逻辑),我将在配置文件表中有一个名为 user_id 的字段。

TABLE users:
id, username, password

TABLE profile:
id, user_id, presentation

当您创建用户时,在插入配置文件表时使用它的插入 ID 号。

一些糟糕的 php 代码示例(不要使用此代码):

mysql_query('INSERT INTO users (username, password) VALUES ("admin", "admin")');
$uid = mysql_insert_id();
mysql_query('INSERT INTO profile (user_id, presentation) VALUES ( ' . $uid . ', "I love my cats")');
于 2012-10-17T10:42:32.863 回答
0

您的表格需要看起来像这样

users:
  - id
  - username
  - password


profile:
  - id 
  - user_id // references field id from user as one to one
  - phone
  - etc

对相关规则的约束将不允许删除用户表中的记录(例如)而不删除 user.id = profile.user_id 的配置文件记录

关系数据库简介http://www.youtube.com/watch?v=z2kbsG8zsLM

于 2012-10-17T10:39:44.600 回答