Php 数据库中的表
我是网络开发新手,正在上一门课程,我们正在使用PHP和MySQL开发网站 我正在做一个项目,我将有很多用户,每个用户都有一个或多个日历,每个日历都有一个或多个事件 从逻辑上讲,事件是日历表中带有日期、时间、标题、位置等的一行是有意义的 我的问题是: 如何在另一个表的行中存储指向该表的“指针” 例如,假设用户有一个运动日历和一个工作日历。我了解如何为每个日历创建表并向其中添加事件,但如何在用户行中存储有关如何检索这些日历的信息 用户将拥有用于Php 数据库中的表,php,mysql,sql,mysqli,database-design,Php,Mysql,Sql,Mysqli,Database Design,我是网络开发新手,正在上一门课程,我们正在使用PHP和MySQL开发网站 我正在做一个项目,我将有很多用户,每个用户都有一个或多个日历,每个日历都有一个或多个事件 从逻辑上讲,事件是日历表中带有日期、时间、标题、位置等的一行是有意义的 我的问题是: 如何在另一个表的行中存储指向该表的“指针” 例如,假设用户有一个运动日历和一个工作日历。我了解如何为每个日历创建表并向其中添加事件,但如何在用户行中存储有关如何检索这些日历的信息 用户将拥有用于 用户ID(自动递增) 电子邮件 用户名 密码(散列)
- 用户ID(自动递增)
- 电子邮件
- 用户名
- 密码(散列)
- 盐
- (还有日历。)
userId
。无论何时需要它们,都可以在这些表中查询。那是你唯一需要的参考资料
而且你不应该在用户表中引用日历,因为用户可以有多个日历,你应该在日历表中使用
userId
作为外键。你只需在日历表中放置一列userId
。无论何时需要它们,都可以在这些表中查询。那是你唯一需要的参考资料
而且你不应该在用户表中引用日历,因为用户可以有多个日历,你应该在日历表中使用
用户ID
作为外键。这里基本上需要三个表,一个用于用户
另一个用于日历
,另一个用于事件
这种关系将是一个用户
可以有许多日历,日历
可以有许多事件
可能是这样的:
TABLE Name : Users
Fields : userid(auto-incremented), email, username, password(hash), salt
TABLE Name : Calendars
Fields : CalendarID, userid, dateFrom, dateTo, Category
TABLE Name : Events
Fields : EventID, CalendarID, Description
SELECT Calendars.CalendarID, dateFrom, dateTo, Category, Description
FROM Calendars
INNER JOIN Events
ON Calendars.CalendarID = Events.CalendarID
WHERE userid = <user id here>
您的SQL可能如下所示:
TABLE Name : Users
Fields : userid(auto-incremented), email, username, password(hash), salt
TABLE Name : Calendars
Fields : CalendarID, userid, dateFrom, dateTo, Category
TABLE Name : Events
Fields : EventID, CalendarID, Description
SELECT Calendars.CalendarID, dateFrom, dateTo, Category, Description
FROM Calendars
INNER JOIN Events
ON Calendars.CalendarID = Events.CalendarID
WHERE userid = <user id here>
要获取给定用户的日历,请执行以下操作:
SELECT CalendarID, dateFrom, dateTo, Category
FROM Calendars
WHERE userid = <user id here>
选择CalendarID、dateFrom、dateTo、类别
从日历
其中userid=
要获取给定用户的日历事件,可能如下所示:
TABLE Name : Users
Fields : userid(auto-incremented), email, username, password(hash), salt
TABLE Name : Calendars
Fields : CalendarID, userid, dateFrom, dateTo, Category
TABLE Name : Events
Fields : EventID, CalendarID, Description
SELECT Calendars.CalendarID, dateFrom, dateTo, Category, Description
FROM Calendars
INNER JOIN Events
ON Calendars.CalendarID = Events.CalendarID
WHERE userid = <user id here>
选择Calendars.CalendarID、dateFrom、dateTo、类别、说明
从日历
内部连接事件
在Calendars.CalendarID=Events.CalendarID上
其中userid=
这里基本上需要三个表,一个用于用户
另一个用于日历
,另一个用于事件
这种关系将是一个用户
可以有许多日历,日历
可以有许多事件
可能是这样的:
TABLE Name : Users
Fields : userid(auto-incremented), email, username, password(hash), salt
TABLE Name : Calendars
Fields : CalendarID, userid, dateFrom, dateTo, Category
TABLE Name : Events
Fields : EventID, CalendarID, Description
SELECT Calendars.CalendarID, dateFrom, dateTo, Category, Description
FROM Calendars
INNER JOIN Events
ON Calendars.CalendarID = Events.CalendarID
WHERE userid = <user id here>
您的SQL可能如下所示:
TABLE Name : Users
Fields : userid(auto-incremented), email, username, password(hash), salt
TABLE Name : Calendars
Fields : CalendarID, userid, dateFrom, dateTo, Category
TABLE Name : Events
Fields : EventID, CalendarID, Description
SELECT Calendars.CalendarID, dateFrom, dateTo, Category, Description
FROM Calendars
INNER JOIN Events
ON Calendars.CalendarID = Events.CalendarID
WHERE userid = <user id here>
要获取给定用户的日历,请执行以下操作:
SELECT CalendarID, dateFrom, dateTo, Category
FROM Calendars
WHERE userid = <user id here>
选择CalendarID、dateFrom、dateTo、类别
从日历
其中userid=
要获取给定用户的日历事件,可能如下所示:
TABLE Name : Users
Fields : userid(auto-incremented), email, username, password(hash), salt
TABLE Name : Calendars
Fields : CalendarID, userid, dateFrom, dateTo, Category
TABLE Name : Events
Fields : EventID, CalendarID, Description
SELECT Calendars.CalendarID, dateFrom, dateTo, Category, Description
FROM Calendars
INNER JOIN Events
ON Calendars.CalendarID = Events.CalendarID
WHERE userid = <user id here>
选择Calendars.CalendarID、dateFrom、dateTo、类别、说明
从日历
内部连接事件
在Calendars.CalendarID=Events.CalendarID上
其中userid=
我的逻辑与你的逻辑不同。我对日历表的想法是,每个日期只有一行。其他列将包含有关该日期的信息,例如会计年度或学年,以及假期
对于用户约会,根据所需的详细程度,我只需存储一个用户id和事件id。事件将具有开始和结束日期时间和类别id
我会朝着每个用户只有一组约会需要维护的方向努力。我的逻辑与你的逻辑不同。我对日历表的想法是,每个日期只有一行。其他列将包含有关该日期的信息,例如会计年度或学年,以及假期 对于用户约会,根据所需的详细程度,我只需存储一个用户id和事件id。事件将具有开始和结束日期时间和类别id
我的目标是,每个用户只需要维护一组预约。你说的是1/参加一门课程和2/数据库设计。你的模型定义在哪里?(merise,uml…)如果每次添加“日历”时都要创建单独的表,那么您的设计中就存在缺陷。您应该有一个大型事件表,其中的列允许您根据需要将该表分为单独的主题日历。你的模型定义在哪里?(merise,uml…)如果每次添加“日历”时都要创建单独的表,那么您的设计中就存在缺陷。您应该有一个大型事件表,其中的列允许您根据需要将该表分为单独的主题日历。啊。好的,我明白了。谢谢现在我正在制定我的表格结构。好的,我明白了。谢谢现在我正在计算我的表结构。