因此,我有一些初学者编程知识(不是很多基于Web的知识),但是我设法弄清楚了如何设置MYSQL数据库以及如何制作一个PHP文件,该文件将从我拥有的测试表中提取行在数据库中进行。

我正在寻找一些输入或伪代码或一般指导,以了解需要采取哪些步骤才能实现自己的想法。我知道我可能需要研究对将要收集的几个数据项的必要的关系调用。我希望使我的志愿者工作更轻松。我在协调其他志愿者的地方做志愿者。我的工作是跟踪他们的认证(在实际的文件箱中)---我使用的是别人的旧Excel表格。

我想向导演介绍一种更有效的方式,让我们收集关键数据,然后轻松地与志愿者共享。

隐私没有问题(我收集的任何数据都不会包含姓名或个人信息,只是这个特定志愿者是否具有一定的证书-我将其与志愿者编号相关联,然后将其交叉引用到我的物理文件)

因此,我要设置的是一个PHP / MYSQL系统来实现此目的:

让用户登录(使用Facebook或Gmail,每个人都必须拥有一个才能使用它)**这一点在此阶段最不重要,因为我只是想证明一个具有正常功能的系统

由php页面向用户发布一份认证清单。这基本上就是他们登录时将看到的所有内容。

让该用户检查他们拥有哪些,​​而其他人留空。

使值保存并保持不变。 (使用“保存”按钮或仅自动)

通过网络链接使清单可(由用户)共享;将根据需要更新的值填充清单。

假设
我假设我需要两个桌子?

用于维护清单和相关徽标的值的表:
表格1

php - MYSQL/PDO PHP系统---寻找粗笔输入-LMLPHP

我假设我的第二张桌子将用于跟踪用户

表2

php - MYSQL/PDO PHP系统---寻找粗笔输入-LMLPHP

我假设在表之间会有关系调用?

所以,如果这个问题太笼统,我理解。我只是在寻找一种解决它的方法,而不必是任何过于详尽的回应。这只是我前进的框架。

最佳答案

您的数据库设计应满足两个条件:


无需在任何地方重复信息
如果删除了用户或证书,则包含该用户或证书的所有其他记录也应为


我会有3个InnoDB表

users
    id //perhaps volunteer id if they're unique. Primary key
    login //email used to login
    api_service //not sure about this; gmail or facebook perhaps?
    password //IF you choose to implement login yourself, remove api_service
    ... //anything else describing the user (not certifications)
    created //date account was added

certifications
    id //unique identifier. Primary key
    name //what is it called
    ... //anything else describing an individual certification

user_certs
    id //unique identifier. Primary key
    user //Foreign key to this table. Primary key from users table
    cert //Foreign key to this table. Primary key from certifications table
    issued_on // date the user received the certification
    expires // date the cert will expire
    ...//anything else describing the binding such as who granted cert or
       //what is cert ID number


整个登录机制实际上不能在一个段落中解决。我对Facebook或Google登录API并不熟悉,所以无论如何我都帮不了你。抱歉。

一些示例查询:

显示一位用户的所有证明(提供其志愿者ID)

SELECT certifications.name, certifications.id
FROM users
LEFT JOIN user_certs ON user_certs.user = user.id
LEFT JOIN certifications ON certifications.id = user_certs.cert
WHERE users.id = $volunteerID


查看具有给定认证名称的所有用户

SELECT users.id
FROM users
LEFT JOIN user_certs ON user_certs.user = user.id
LEFT JOIN certifications ON certifications.id = user_certs.cert
WHERE certifications.name = $certName

10-05 22:58
查看更多