我有一个包含用户列表(用户名,密码)的表。但是这个表是在没有ID的情况下创建的,我无法改变它。如何创建唯一ID(如果可能,整数)以建立与其他表的关系?
更新:
用户列表不是我数据库中的一个表,它只是从Web服务获取的数据,因此当用户登录系统时,我检查用户列表中是否存在凭据,返回true或者是假的。它工作得很好,但现在我必须将事情与每个用户联系起来,比如产品。在正常情况下,我只需要将用户ID放在products表中,但在这里我没有该ID。
为此,我正在考虑根据每个用户的用户名生成一个哈希,并将其用作一个唯一的ID,这样我就可以获得一个ID来在表产品中使用它。
这是一个很好的解决方案吗?
答案 0 :(得分:2)
如果您因任何原因无法更改表格,正如您在问题中所述,我认为至少username
将是一个唯一值。尽管使用字符串作为主键并不理想,但它是完全可行的,并且没有什么能阻止您将它用于您的关系。
当然,改变表格以添加int
字段将是最好的方法,但实际上并不是必需的。
答案 1 :(得分:1)
我对您的问题和情况的理解如下:
你无法改变这个表是在没有独立“id”的情况下创建的事实。
截至目前,您有足够的权限向此表添加字段。
您可以通过某种方式获取用户对此表的访问权限的时间窗口。
如果是这种情况,则需要添加此字段并使用连续的整数填充它。
答案 2 :(得分:0)
试试这个
ALTER TABLE table_name ADD column_name INT FIRST;