如何在数据库中为用户创建表

时间:2017-02-25 01:37:49

标签: mysql sql amazon-web-services

我正在创建一个移动应用程序。在这个应用程序中,我创建了一个登录和注册活动。我还使用AWS(亚马逊网络服务)创建了一个在线数据库,用于在注册时存储用户的所有登录信息。

在我的数据库中,我有一个名为'users'的表。此表包含以下字段“fname”,“lname”,“username”,“password”。此部分可以工作并成功将数据从手机存储到数据库。

例如,

   | fname  |  lname | username | password | 
   | ------ | ------ | -------- | -------- |
   | john   |  doe   | jhon123  | 1234     |

在应用程序内部,我有一个选项,用户可以单击“开始日志”,这将在seekBar上记录开始和结束值。

如何在登录的用户下创建表格。

  

(基本上,我希望能够在用户下创建多个表。)

例如,

此表应位于用户“john123”下:

   | servo  |  Start | End | 
   | ------ | ------ | --- | 
   |    1   |   21   |  30 |
   |    2   |   30   |  11 |
   |    3   |   50   |  41 |  
   |    4   |    0   |  15 |

我知道这是一个令人困惑的问题,但是

  

我实际上只是想让多个表链接到用户。

2 个答案:

答案 0 :(得分:3)

至于:

  

如何在数据库中为用户创建表

以下是一些您可能会觉得有用的GUI工具:

至于为每个用户创建一个单独的表,请参阅@Polymath的答案。为每个用户创建单独的表没有任何好处(您也可以使用json文件。)

您应该做的是创建一个logs表,其user_id属性引用id表中的users

 -------------------------------------------------------
| id | fname  |  lname | username | password            | 
| -- | ------ | ------ | -------- | ------------------- |
| 1  | john   |  doe   | jhon123  | encrypted(password) |
 -------------------------------------------------------
  |______
         |
         V
 ---------------------------------------
| id | user_id | servo_id | start | end |
| -- | ------- | -------- | ----- | --- |
| 1  | 1       | 1        | 21    | 30  |
| 2  | 1       | 2        | 30    | 11  |
 ---------------------------------------

您还应该将database normalization视为" john123"表格不在3NF中。伺服应该从logs表中分解出来,如果它被多个用户记录或多次记录(我猜你的情况)。

答案 1 :(得分:2)

在阅读本文时,我想知道你的设计是否正确。听起来您正在尝试为每个用户创建一个表。我也想知道每个用户拥有一个独特的表是多么可扩展。如果扩展到数百万用户,则需要管理数百万个表,并且可能需要单独的索引表来为用户找到正确的表。为什么每张桌子都有?为什么不将具有UserID的单个表作为使用键值。您只需通过过滤UserID即可提取数据。

Select * FROM UsersData ORDER BY DateTime WHERE User == UserID

但是我会留下让你思考。

您提到这是一款移动应用。我认为您需要做的是查看AWS Federated访问和Cognito,它将允许您使用联邦身份识别用户。传递用户唯一ID,以及链接到访问角色的临时(一次使用)凭据。通过这种方式,您可以使用完整身份验证扩展到数百万用户,而无需管理数百万个帐户。

RL