【发布时间】:2015-12-21 11:24:13
【问题描述】:
我正在整理我网站上博客文章的表格。
我知道如何使用 SQL,并且对不同的类型和长度有所了解,但我不知道我的表的最佳长度和类型。
我目前的设置方式是:
- id - BIGINT (20)
- author_id - BIGINT (20)
- 标题 - 文字
- 标签 - VARCHAR (50)
- 类别 - VARCHAR (50)
- 项目 - VARCHAR (50)
Tags 是帖子标签的字符串数组,与类别相同。项目将是一个整数数组,它们是与帖子关联的“项目”的 ID。 (每个项目都有自己的页面,当您访问该页面时,您可以获得所有关于它的帖子的列表。
我的问题是,我可以设置此表的最优化方式是什么?
更新:
目前,我对存储它和优化磁盘使用的最佳方式很感兴趣。现在我有一个免费的 x10hosting 服务器要使用,它有 512mb 的限制。如有必要,我可以稍后再购买一台更大的服务器,但我想坚持使用免费的服务器,直到达到极限。
【问题讨论】:
-
有“最优化的”并且有适当的。正确的方法是不要试图把所有东西都塞进一张桌子。谷歌“多对多关系”,这是关系数据库的绝对基础。
-
tags 和 categorizes 应该有自己的表,然后一个表将 post 表连接到每个表
-
为什么不规范化标签和项目?以数组的形式显示它们是 UI 问题,而不是数据问题。通过在字段中存储为固定数组,修改和搜索变得更加困难。
-
我目前不确定处理标签和类别等内容的最佳方法。我一直无法找到我需要的关于如何最好地管理这些东西的信息。目前我仍在开发框架,因此它对任何更改/改进都是开放的
-
BIGINT 假设您预计地球上一半的人口将参与其中。我佩服你的野心!但说真的,请参阅规范化。
标签: php mysql sql-server optimization database-schema