您好我正在建立一个网站,其中包括我高中重点项目最后一年的用户注册系统。该网站存储学习者驱动程序的驾驶日志。我对如何设计数据库感到困惑。我有一个用户表,用于存储站点的每个用户的个人信息。但是,我希望用户能够将信息插入到另一个表中,这些表将是他们的“日志”,并且这将显示在我的帐户页面上。我是否需要在数据库中为每个用户创建一个表,或者是否有一种连接表的方法,以便我不必这样做。
答案 0 :(得分:0)
您无需为每个用户创建表格。而是在" logbook"中添加一列。表格将包含并引用" id"他跟踪的用户这可能是您"用户"的主要关键。表。然后,要获取特定用户的日志,您将在日志表中查询仅具有特定用户ID的行。
此外,在更复杂的设置中,您可以添加约束来链接两列。见http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
答案 1 :(得分:0)
每个用户都不需要表格... 只有一张桌子可以帮助你... 您想要存储用户日志的另一个表应该只引用您在用户表中创建的用户。 主键和外键 - 关系表概念
例如: 让你的用户拥有 1.userid 2.第一个名字 3.lastname ....和其他colums
然后你的用户日志wala表应该有 1.logid 2.userid 3.其他栏......
希望你明白了..
答案 2 :(得分:0)
用户只需要 1 表,每个用户都会在该表中排成一行。
如下表所示,您需要一种能够跟踪哪个日志记录属于哪个用户的方法。这是通过存储用户ID(或任何唯一标识符,通常是主键)来确切知道哪个用户创建了记录。
-------------- -----------------
| User Table | | Logbook Table |
------------------------- -----------------------------------
| id | name | ...etc... | | id | user_id | date | ...etc... |
------------------------- -----------------------------------
| |
|_____________________________________|
我不知道您的系统是如何工作的,但我假设您知道用户何时登录?可能会将他们的id
存放在会话中是吗?当您插入日志记录时,您需要做的就是解析其用户ID:
INSERT INTO logbook (id, user_id, .....) VALUES (NULL, $THE_USER_ID_FROM_SESSION, .....)
以上是伪代码,您需要清理输入并实际将用户ID分配给变量。
现在,要获取特定于用户的信息,您只需添加一个简单的WHERE
子句:
SELECT id,column_1,column_2,... FROM logbook WHERE `user_id` = $THE_USER_ID_FROM_SESSION
以上是伪代码,您需要清理输入并实际将用户ID分配给变量。
我有几个问题,你要在桌上做多少读/写?你的桌子是如何设置的?