创建没有ID的关系

时间:2013-03-01 21:00:36

标签: sql database

我有一个包含用户列表(用户名,密码)的表。但是这个表是在没有ID的情况下创建的,我无法改变它。如何创建唯一ID(如果可能,整数)以建立与其他表的关系?

更新:

用户列表不是我数据库中的一个表,它只是从Web服务获取的数据,因此当用户登录系统时,我检查用户列表中是否存在凭据,返回true或者是假的。它工作得很好,但现在我必须将事情与每个用户联系起来,比如产品。在正常情况下,我只需要将用户ID放在products表中,但在这里我没有该ID。

为此,我正在考虑根据每个用户的用户名生成一个哈希,并将其用作一个唯一的ID,这样我就可以获得一个ID来在表产品中使用它。

这是一个很好的解决方案吗?

3 个答案:

答案 0 :(得分:2)

如果您因任何原因无法更改表格,正如您在问题中所述,我认为至少username将是一个唯一值。尽管使用字符串作为主键并不理想,但它是完全可行的,并且没有什么能阻止您将它用于您的关系。

当然,改变表格以添加int字段将是最好的方法,但实际上并不是必需的。

答案 1 :(得分:1)

我对您的问题和情况的理解如下:

  1. 你无法改变这个表是在没有独立“id”的情况下创建的事实。

  2. 截至目前,您有足够的权限向此表添加字段。

  3. 您可以通过某种方式获取用户对此表的访问权限的时间窗口。

  4. 如果是这种情况,则需要添加此字段并使用连续的整数填充它。

答案 2 :(得分:0)

试试这个

ALTER TABLE table_name ADD column_name INT FIRST;