【发布时间】:2013-11-14 16:55:26
【问题描述】:
使用 MS Visual Studio 2012、Asp.net C# MVC 4、实体框架、NopCommerce(cms)。
大家好,我有数据库设计查询,它实际上让我很困惑,通常我对 DB 没有任何问题。
然而,自从过渡到 Code First 方法之后,我问了自己这个问题......
我正在为我的 NopCommerce CMS 网站创建一个新插件,该插件应为 ImageGallery 插件。
我希望数据层存储一个
ID,
Name,
LargeImg
SmallImg,
Urlimg
但我也想实现这个插件的功能,用户应该能够上传任何图像,然后将该图像关联到那里选择的部分,我的意思是Img到博客文章,或图片到新闻文章,图片到产品文章或所有 3。
现在这三个示例是我能想到的唯一示例,但正如您已经猜到的,这可能会根据其他内容类型而改变。
现在我立刻想到,很简单,我们只需创建一个名为.....Type 的字段?还是内容类型? 然后,此字段将存储图像关联的“类型”,无论是博客、新闻还是产品项。
此时我想到了“但是如果一个图像有多个关联呢?
这让我想到了这个问题,在这种情况下,我应该:
- 为每个“内容类型”(非规范化)创建单独的列
- 创建1列称为“内容类型”(规范化)
- 创建一个完全单独的表称为“内容类型”并使用关系
由于某种原因,我被卡住了,我通常不会对数据库设计和实现持空白。
下面的代码是我插件中的域类,我选择了 number 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; }
}
}
希望你们能指出正确的实现方法,谢谢!
【问题讨论】:
标签: c# asp.net-mvc-4 database-design entity-framework-4 nopcommerce