Php MySQL-组织数据库内容(体育联盟)
我正在为我的青年体育组织设计一个PHP/MySQL解决方案,该解决方案将显示参加任何给定赛季的球队的时间表和排名。不幸的是,当涉及到数据库设计时,我只是在学习一些诀窍,并且有一点挑战让我的大脑围绕着一个相对简单的概念。也许有人可以插手澄清几点 我不清楚的是如何准确地构造数据库和表,以便正确地开始。这是我最终需要设置的:Php MySQL-组织数据库内容(体育联盟),php,mysql,database-design,mysqli,Php,Mysql,Database Design,Mysqli,我正在为我的青年体育组织设计一个PHP/MySQL解决方案,该解决方案将显示参加任何给定赛季的球队的时间表和排名。不幸的是,当涉及到数据库设计时,我只是在学习一些诀窍,并且有一点挑战让我的大脑围绕着一个相对简单的概念。也许有人可以插手澄清几点 我不清楚的是如何准确地构造数据库和表,以便正确地开始。这是我最终需要设置的: 我们有大约50所成员学校。每个人都需要自己的登录ID和密码。我在考虑将这些存储在各自的数据库中,因为这些帐户将在每个赛季重新用于代表球队,并允许教练登录并更新他们的比赛结果 每个
非常感谢你 哎哟。你承担了一项重要的工作。你是否绝对确定你将要做的任何事情都不能由已经可用的东西来完成?好吧,如果你确定的话,继续读下去 首先,您想做的最困难的部分是管理您的用户访问。我建议您在继续之前先编写用户管理模块 对于您想要的,Drupal或其他高级CMS系统可能是引导系统的一种很好的方式。Drupal将立即处理您的用户管理(或以最小的问题),您可以将其余代码编写为静态节点。这也使得添加博客、论坛、新闻和管理邮件列表等变得容易 如上所述,您确实需要将数据保存在一起。保存数据以便进行历史比较也是件好事 如果不延长CMS,在你从精神病医生那里回来后,你将需要以下内容:
Person - details of individual users
username - link person to a username
email - email addresses
club - sports club details
password - passwords
logon - record of logon attempts
role - record of role of individuals in your site
permissions - list of required permissions to access areas of the site
role_permissions - default permissions for each role
person_role - link person to role
person_permissions - link person to permissions (only needed if some individuals need extra permissions not given routinely by their role)
club_person; person_email; - link people to clubs and to their email addresses.
要处理匹配,您需要:
team - team name, group and club reference
grouping - list of groups eg by age.
divisions. - list of divisions
venue - list of venues. Include GPS!!!
match - division, grouping, team1, team2, venue, date, time
result - team1 reported result, team 2 reported result, approved result (you may need to intervene!) match.
正如您所看到的,您需要相当多的表,但是在您的用户访问正常工作之前,您不能尝试与实际的团队一起做有趣的事情
我给你们画的是一个正常形式的db。没有重复的文本数据,数据易于检索、索引和显示。我确实觉得这个问题对你来说太宽泛了,所以为你设计一个数据库有点超出范围,但我确实认为通用格式是有用的
每个表应仅包含唯一的必要数据,例如:
Person: personid int, surname, forename, style, whenadded, whoadded, inuse
email: emailid, email, whenadded, whoadded, inuse
email_person: emailpersonid,emailid,personid, whenadded,whoadded,inuse
这允许多人共享一封电子邮件,并将多封电子邮件应用于一个人,而不存在文本复制。ID应该是INT AUTO_INCREMENT PRIMARY KEY类型,而不是SERIAL类型,因为这样可以节省大量存储空间,并且在这个应用程序中永远不会填充INT
其他表应以相同的方式创建。whoadded和whenadded列是可选的,并且非常需要存储,但可能非常有用。inuse是必不可少的,将其设置为BOOL,您可以删除团队而不删除他们-数据不会丢失。whenremoved和whoremoved对于审计也很有用
一个关于密码的单词-请确保您将其存储为咸哈希。如果你这样做,当你的网站被黑客入侵时,没有人会暴露他们也用于网上银行的密码。人们常常是白痴。你必须照顾他们
正如我所说的,有点超出范围,所以我将在这里结束回答-它根据要求为您提供了第四范式数据库的基本轮廓,它将是健壮的和可扩展的,但让您完成这项工作。如果问题太难,为什么不多问些问题呢
祝你好运
增加:
DIY框架:
如果您不想学习使用现有的框架或CMS,您需要编写自己的框架或CMS。奇怪的是,这其实很容易
header.php:
<?PHP
$mysqli=new mysqli(credentials....)//connect to database and present a mysqli or pdo object.
session_start(); //open a session
//you will need to authenticate your session here - see below
?>
footer.php:
<HTML>
<HEAD>
<TITLE>
<?PHP echo $pagetitle;?>
</TITLE>
</HEAD>
<BODY>
<?PHP echo $content;?>
</BODY>
</HTML>
mypage.php使用了以下内容:
<?PHP
require("header.php");
//do some stuff that generates $content
$pagetitle="mypage.php";
require("footer.php:);
?>
哎哟。你承担了一项重要的工作。你是否绝对确定你将要做的任何事情都不能由已经可用的东西来完成?好吧,如果你确定的话,继续读下去 首先,你想做的最难的部分是妈妈