我正在做一个基本的博客风格的网站与文章和评论。我知道类似的软件已经存在(drupal,joomla),但在这种情况下,我更喜欢使用自己的软件,而且这也是我学习的方式。:-)
以下是基本的表格详细信息:
表名:用户
目的:关于可以访问系统的人的信息。
列名
id
名字
hashed_password
电子邮件
网站
last_login_date
last_login_ip
权限
表名:文章
:由用户在users表中发布的文章。
列名
id
标题
users_id
日期
内容
表名:注释
目的:对公众和用户发表的文章的评论。
列名
id
articles_id
comments_authors_id
日期
评论
表名:comments_authors
目的:关于评论文章的人的信息。
列名
id
名字
电子邮件
网站
工作流
1.)用户从user表中发布一篇文章。
2.)这篇文章写在文章表上。
3.)John,而不是用户,对这篇文章发表了评论。
4.)约翰的个人信息写在comments_authors上。
5.)约翰的评论写在评论表上。
到目前为止听起来不错。现在考虑一下这个…
1.)用户,从users表中,注释一篇文章。
2.)用户的个人信息被写入comments_authors。
3.)用户的注释被写入注释表。
问题
现在我们有关于用户的重复信息。:-(
用户名、电子邮件地址和网站url存储在用户表和comments_authors表中。
这是一个错误的设计吗?有正确的方法吗?
一个只有几个用户的系统,也许不用担心。
一个拥有数百个用户的系统,嗯,这是很多重复的数据。
我真的很感激你的帮助。谢谢!
发布于 2010-11-16 22:08:04
人们喋喋不休地重复数据..。它可以是..。可能是个问题。如果你在建立订单系统,会计,交易,系统.这是件大事。
这是博客评论..。最坏的情况是什么?
最坏的情况是你只有两份海报.每一个只发表评论的蠢货都只有一次。所以,如果你有1000张海报,你会有1000多行大约100字节的行.哇,你把整个MEGAbyte的数据库空间都吃光了。
我是否推荐此数据模型作为模拟模式,否。我的设计会有很大的不同。但是我设计的是非常大规模的企业应用程序,而这些设计并不一定是最容易编程的东西。他们表现得很好。但是在你的例子中,开始编写代码,不要操之过急那么少的冗余。
发布于 2010-11-16 21:44:38
对于每一个新的评论,您可以创建一个新的“用户”与公共隐私,而没有密码。让电子邮件地址唯一的用户名,你将不会有重复的数据。在评论中,您可以使用comments_authors_id user_id代替。
发布于 2010-11-16 21:47:31
也许我不是很了解您的设计,但是删除comments_authors表并使用您的user表中的permissions字段来判断用户是否允许发布文章或只添加注释会更好吗?
https://stackoverflow.com/questions/4199246
复制相似问题