为每个用户创建单独的表以存储数据或使用单个表

时间:2011-08-19 06:02:34

标签: java mysql database

我知道有很多与此问题相关的查询,但我的问题 是不同的。我想制作一个密码管理器应用程序 为每个用户存储主机名,用户名,密码,备注等。我不能 将这些信息存储在用户的列中,因为有多行 为每个用户的数据。

在我的情况下,为每个用户创建一个单独的表是正确的 或者我创建一个名为“Host”的表,并在那里添加所有密码 使用外键“username”作为此表中的主键。无论何时 查询被执行它只显示特定用户的行。

  

用户表: - id:用户名:电子邮件:密码:安全问题:回答

     

主机表: - 用户名:s.no。:主机名:主机用户名:密码:备注

哪种方法更有效,如果有更好的方法 另请告诉我。我是第一次发帖子 从这个网站获得了很多,所以请原谅我的坏 语法。

2 个答案:

答案 0 :(得分:4)

正确的方法会重复这样的事情:

Users
------
id | username | email | encryptedpassword | security_question | encryptedsecurityanswer

Hosts
------
id | user_id | name | notes 

为用户和主持人保留一张桌子。这些表由Users.id连接到Hosts.user_id关系。

答案 1 :(得分:1)

为每个用户创建表是一种糟糕的方法。如果您打算使用Plan A,当用户数量增加时,它将创建数据库OVER HEAD。

使用计划B

 Host Table:-username:s.no.:host name:host username:password:notes