文章表架构

时间:2009-06-03 20:51:38

标签: ruby-on-rails database-design schema

我需要为“文章”创建典型的crud应用程序,在这方面是否有标准或最佳实践?我知道每个应用程序和情况都有所不同,但我的意思是一般。

其次,我对如何处理与特定文章相关的多个图像感到困惑,我想只是img标签散布在文章的正文中,而不是有图像表并引用图像和文章,所有那。只是寻找一些关于如何处理这类事情的提示和建议,因为我相信大多数人都已经多次这样做了。

我的文章定义是:

CREATE TABLE `articles` (
  `id` int(11) NOT NULL auto_increment,
  `issue_id` int(11) default NULL,
  `status` text,
  `updated_at` date default NULL,
  `body` text,
  `title` varchar(255) default NULL,
  `author` varchar(255) default NULL,
  `created_at` date default NULL,
  PRIMARY KEY  (`id`)
)

3 个答案:

答案 0 :(得分:2)

Dublin Core是文档和媒体的非正式标准属性集。属性是:

  • 标题
  • 创建者
  • 主题
  • 描述
  • 出版商
  • 贡献者
  • 日期
  • 类型
  • 格式
  • 标识符
  • 来源
  • 语言
  • 关系
  • 覆盖范围
  • 版权

在这个列表背后多年来运行文档/媒体管理应用程序的人们已经有了相当多的想法。我认为这是一个很好的资源,可以深入了解您的用户可能会发现哪些属性最初可能会遗漏的想法(例如创建者与发布者与贡献者与来源)。我不会将所有这些转储到您的应用程序中而不考虑它们是否相关。

我认为你确实需要一个将图像与文章相关联的表格。否则,如果您需要知道文章使用的图像,例如删除文章及其图像,则查找关联图像的唯一方法是解析文章正文本身。这使得使用字符串处理函数的笨拙SQL或在应用程序中强制处理,如果您需要一次处理一组文章,这两者都可能是性能问题。

您仍然可以在文章正文中使用图片标记来布局图像,但是避免使用任何更复杂的自定义标记系统。只需编写模型,以便在创建/编辑文章时解析图像标记并更新连接表。一点点nokogiri和attachment_fu(或他们的替代品)应该使这成为一个快速的工作。

答案 1 :(得分:1)

文章表:

CREATE TABLE `articles` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `keyname` varchar(96) NOT NULL,
  `title` varchar(96) NOT NULL,
  `content` text NOT NULL,
  `tags` varchar(128) NOT NULL,
  `author` varchar(128) NOT NULL,
  `date_created` datetime NOT NULL,
  `date_updated` datetime default NULL,
  PRIMARY KEY (`id`)
)

文章图片:

CREATE TABLE `articles_images` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `article_id` int(10) unsigned NOT NULL,
  `url_thumb` varchar(512) NOT NULL,
  `url_big` varchar(512) NOT NULL,
  `date_created` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `article_id` (`article_id`)
)

url_thumb - 图片缩略图
url_big - 大图片

你可以查看Wordpress`数据库chema

答案 2 :(得分:0)

如果您只是想显示图像并使用ftp上传它们,图像标记就可以了

如果您想要一个Web界面上传它们,保存数据库中的路径非常方便

您不必将图像附加到文章本身,您可以使用表格保存图像路径,然后使用连接模型或只是通过图像标记指向图像

这允许您使用像paperclip(插件)一样方便的东西来处理上传和存储