使用MS visual studio 2012,Asp.net C#MVC 4,实体框架, NopCommerce(cms)。
大家好我有数据库设计查询,实际上我很困惑,通常我没有DB的问题。
然而,自从过渡到 Code First方法后,我问自己这个问题......
我正在为我的NopCommerce CMS网站创建一个新插件,此插件应为 ImageGallery插件。
我希望数据层存储
ID,
Name,
LargeImg
SmallImg,
Urlimg
但我也想要实现这个插件的功能,用户应该能够上传任何图像,然后将此图像关联到选择的部分,我的意思是Img到博客文章,或者Img到新闻帖,Img到产品帖子或所有3。
现在这三个例子是我能想到的唯一例子,但正如你猜测的那样,这可能会因其他内容类型而改变。
现在我想,我们简单地创建一个名为..... Type的字段?或ContentType? 然后,该字段将存储图像关联的“类型”,无论是博客,新闻还是产品项目。
此时我想到了“但如果图像有多个关联怎么办?
在这种情况下,我想问这个问题:我应该:
出于某种原因,我被困住了,我通常不会在数据库设计和实现上留下空白。
以下代码是我的插件中的域类,我选择 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; }
}
}
希望你们能指出实现这个的正确方法,谢谢!
答案 0 :(得分:1)
任何事情都需要权衡
您案件中正常化的好处:
缺点:
如果我正在设计此功能,我会使用选项3 - 规范化内容类型还有其他优点,例如能够将该表用于下拉列表。