使用 MS Visual Studio 2012、Asp.net C# MVC 4、实体框架、NopCommerce(cms)。
大家好,我有数据库设计查询,它实际上让我感到困惑,通常我对数据库没有任何问题。
然而,自从过渡到Code First 方法后,我问了自己这个问题......
我正在为我的 NopCommerce CMS 网站创建一个新插件,这个插件应该是ImageGallery Plugin。
我希望数据层存储一个
ID,
Name,
LargeImg
SmallImg,
Urlimg
但我也想实现这个插件的功能,用户应该能够上传任何图像,然后将此图像关联到那里选择的部分,我的意思是 Img 到博客文章,或 Img 到新闻文章, 图像到产品帖子或所有 3。
现在这三个示例是我能想到的唯一示例,但是正如您所猜测的,这可能会根据其他内容类型而改变。
现在我立刻想到,很简单,我们只需创建一个名为.....Type 的字段?还是内容类型?然后,此字段将存储图像关联的“类型”,无论是博客、新闻还是产品项目。
在这一点上,我想到了“但是如果图像有多个关联怎么办?
这让我想到了一个问题,在这种情况下,我应该:
- 为每个“内容类型”创建单独的列(非规范化)
- 创建1 列称为“内容类型”(规范化)
- 创建一个完全独立的表,称为“内容类型”并使用关系
出于某种原因,我被卡住了,我通常不会对数据库设计和实现保持空白。
下面的代码是我插件中的域类,我选择了2 号,但我不确定是否继续沿着这条路走下去。
using Nop.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hroc.Plugin.Misc.ImageGallery.Domain
{
public class ImageItem : BaseEntity
{
public virtual int ImageID { get; set; }
public virtual string Name { get; set; }
public virtual byte[] Largeimg { get; set; }
public virtual byte[] Smallimg { get; set; }
public virtual string URLimg { get; set; }
public virtual string Typeimg { get; set; }
public virtual int LinkID { get; set; }
}
}
希望大家能指出正确的实现方法,谢谢!