我正在尝试使我的数据库正常化,但我很头疼。我正在开发一个CMS,Facebook用户可以在我的网站上创建一个页面。到目前为止,这就是我所拥有的
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+页面,重复的标记无疑会增加存储空间和速度。
设计上有什么问题吗?或者我做错了什么?我记得我在大学里学过这个,但从那以后我就很少做数据库设计了。
我宁愿第一次就把它做好,而不是以后头疼。
发布于 2011-06-24 19:58:10
在我看来没问题。有五张表能有多糟糕呢?
您有用户、页面和标记。用户可以有多个页面;页面可以被多个用户引用。一个页面可以有多个标记;一个标记可以与多个页面相关联。
为我总结一下。我不会担心的。
您的下一个关注点是索引。对于要用来查询的每个WHERE子句,都需要一个索引。
https://stackoverflow.com/questions/6467316
复制相似问题