Mysql数据库设计

标签 mysql

目前我正在开发一个项目,乍一看,该项目需要数据库中的许多表。大多数表格都相当简单,但我确实有一个问题。其中一张表格将是网站的成员列表,其中将包括用户名、密码、联系信息、个人简介、教育程度等内容。这是一个简单的设计,但是,还需要每个成员将其可用性输入并存储在数据库中。可用性定义为日期和时间范围。例如,美国东部标准时间 2011 年 4 月 5 日下午 1 点至下午 6 点可用,或者美国东部标准时间每周五晚上 8 点后不可用。对于单个用户来说,这可能是一个单独的表,但对于许多用户来说,我不确定如何以可管理的方式组织数据。首先的想法是使用代码为每个用户创建一个表,但这可能意味着除了我用于其他站点功能的少数表之外,数据库中还有很多表。从逻辑上讲,我可以使用附加到 Avail_ 的用户名或表名称的其他内容,即:Avail_UserBob,然后根据需要进行查询。但我很好奇是否有人能想到比在单个数据库中拥有数百个表的潜力更好的选择。

编辑 因此,普遍的共识是为成员建立一个表,例如 ID 是唯一的键。然后有第二个表用于显示可用性(日期、开始时间、结束时间、是否可用的 bool 值以及适用的成员 ID)。 Django 可能听起来不错并且工作得很好,但是我在处理这个项目时没有时间花时间学习另一个框架。 2 表方法似乎似乎合理,但我担心功能需要额外的编码,这些功能将利用可用时间来 A)构建类似日历的页面来添加、编辑或删除输入的值,以及 B)将可用性与另一个表中的条目进行匹配列出了游戏。虽然我可能需要编写更多代码,但只要数据库健全、功能齐全且不那么困惑,我就可以忍受。感谢大家的意见。

最佳答案

听起来不像一个巨魔,但您应该考虑使用 Web 框架来为您构建大部分内容。我建议看看 Django。使用它,您可以定义想要存储的字段类型(以及它们如何关联),Django 会构建所有 SQL 语句来实现这一目的。您免费获得一个漂亮的管理界面,以便员工可以登录并添加/编辑等。

您也不必担心构建登录/身份验证/更改密码等表单。所有 session 内容都由 Django 处理。您可以专注于您的项目/应用程序的独特之处。

它可以让您非常非常快地构建项目。

djangoproject.org

我没有任何其他框架建议可以满足您的需求。我愿意...但我认为 Django 符合要求。

关于Mysql数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5555210/

相关文章:

mysql - 如何规范化具有逗号分隔值的列

php - 从同一数据集执行2条sql语句

MySQL自定义函数将罗马数字转换为阿拉伯数字

php - 无法通过 cake cake db_config 创建数据库

php - 具有自动增量的遗产

php - 如何在注册时自动为用户分配子域

mysql - mysql.log 中的奇怪查询

mysql - 可以免费安装mySQL Cluster吗?

mysql - 仅选择特定列的内连接 3 个表

MYSQL按日期累计和