本人语言表述能力有待提高,还是举个例子来说明一下吧!以新闻系统为例,每则新闻都属于一个新闻类别。下面是我对这个新闻类别的设计存有的疑问,望GGDDJJMM指点迷津!疑问一:这个新闻类别是另存一张表,在新闻表中做外键关联呢?还是直接以文本形式存放在新闻表中?(本人选择第一种方式)
疑问二:在疑问一种,若采用第一种方式,那么关于这个新闻类别是映射成实体呢?还是映射成枚举?
疑问三:若新闻类别映射成实体那么显然利于维护,但程序的可读性欠佳;若新闻类别映射成枚举,程序可读性提高但后期一旦类别发生变化,必然需要更改枚举,不利于维护。如何取舍呢?在我参与的项目中,有些选择了实体,有些选择了枚举,搞得我很是困惑,真诚希望各位给予指导,谢谢!
疑问二:在疑问一种,若采用第一种方式,那么关于这个新闻类别是映射成实体呢?还是映射成枚举?
疑问三:若新闻类别映射成实体那么显然利于维护,但程序的可读性欠佳;若新闻类别映射成枚举,程序可读性提高但后期一旦类别发生变化,必然需要更改枚举,不利于维护。如何取舍呢?在我参与的项目中,有些选择了实体,有些选择了枚举,搞得我很是困惑,真诚希望各位给予指导,谢谢!
解决方案 »
- 求ComponentArt中控件的用法
- 寻一个在网页上面显示今天的日期和现在的时间JS
- .net 文件夹在解决方案里有白色颜色?
- asp.net中gridview导出WORD,怎样获得保存对话框中选择的路径.. 怎么交互
- 如何自动判断Request.QueryString参数的编码格式
- 如何让弹出窗口总是在最上面?
- 菜鸟问题:asp.net如何做SQL和ACCESS数据库通用的程序?
- 在net里用label显示文章列表和用datalist显示文章列表,哪个效率高一些
- 在javascript中怎样将asp.net页面中回车换行和空格提取并转换出来
- 怎样好像JAVA那样包含一个.JSP文件一样在一个.ASPX里包含一个.ASPX文件。
- 64位win2003中framework1.1的兼容性问题
- 字符显示问题
:最好另建立一个表来存放类别,至少有两个字段(ID int, Title varchar(50)),使用ID做为关键字与新闻表做关联。疑问二:在疑问一种,若采用第一种方式,那么关于这个新闻类别是映射成实体呢?还是映射成枚举?
:不太理解这个实体和枚举是什么意思,不过我的做法是使用ID做为关键字,以整数数值做对应。和枚举类似。疑问三:若新闻类别映射成实体那么显然利于维护,但程序的可读性欠佳;若新闻类别映射成枚举,程序可读性提高但后期一旦类别发生变化,必然需要更改枚举,不利于维护。如何取舍呢?
:对应到程序里,可以声明一个结构体(或类)来记录ID和Title的关系,这样会提高可读性及易操作性。
public class NewsCategory
{
public int ID{ get; set;}
public string Title {get; set;}
}我说的枚举指的是:
public enum NewsCategory
{
None = 0,
Category1 = 1,
Category2 = 2,
// ...
}如果使用枚举的话,在程序中可以使用NewsCategory.Category1来访问,但不利于维护
{
enum Opeat:short
{
Add,
Edit,
Delete
} public void Do(int i, Opeat p)
{
string msg = string.Empty;
switch (p)
{
case Opeat.Add: msg = "添加"; break;
case Opeat.Edit: msg = "编辑"; break;
case Opeat.Delete: msg = "删除"; break;
} Message.Alert("Id" + i.ToString() + msg + "成功");
}
}