首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL设计问题

MySQL设计问题
EN

Stack Overflow用户
提问于 2011-06-24 19:46:47
回答 1查看 45关注 0票数 0

我正在尝试使我的数据库正常化,但我很头疼。我正在开发一个CMS,Facebook用户可以在我的网站上创建一个页面。到目前为止,这就是我所拥有的

代码语言:javascript
复制
page
----
uid            - PK AI
slug           - Slug URL
title          - Page title
description    - Page description
image          - Page image
imageThumbnail - Thumbnail of image
owner          - The ID of the user that created the page
views          - Page views
timestamp      - Date page was created

user
----
uid  - PK AI
fbid - Facebook ID
(at a later date may add profile options i.e name, website etc)

tags
----
uid - PK AI
tag - String (tag name)

page_tag
--------
pid - Page id (uid from page table)
tid - Tag id (uid from tag table)

page_user
---------
pid - Page id (uid form page table)
uid - User ID (uid from user table)

我已经试着根据需要分离出尽可能多的信息,而不会过多地使用。我为标签创建了一个单独的表,因为我不希望标签名称重复。如果数据库包含100,000+页面,重复的标记无疑会增加存储空间和速度。

设计上有什么问题吗?或者我做错了什么?我记得我在大学里学过这个,但从那以后我就很少做数据库设计了。

我宁愿第一次就把它做好,而不是以后头疼。

EN

回答 1

Stack Overflow用户

发布于 2011-06-24 19:58:10

在我看来没问题。有五张表能有多糟糕呢?

您有用户、页面和标记。用户可以有多个页面;页面可以被多个用户引用。一个页面可以有多个标记;一个标记可以与多个页面相关联。

为我总结一下。我不会担心的。

您的下一个关注点是索引。对于要用来查询的每个WHERE子句,都需要一个索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6467316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档