日期:2014-05-17  浏览次数:20404 次

订餐系统表字段怎么设计好啊
我想做一个订餐系统,如菜谱表的编号是用自增好呢还是有字符串做主键好,你不可能给人家编号是1,2 ,3
吧,比如是dish0001,如果用这个怎么能保证这个是唯一的,每次插入就去检查一下数据库?会不会那个菜已有编号它自己录入啊? 如果这个菜属于多种味道类型我应该建一个表关联还是用一个字段好,一个字段好像不行?问了这么多用没有一个做过的数据库设计参考啊?
------最佳解决方案--------------------
System.Guid.NewGuid().ToString();自动生成一个编号就行了!!
------其他解决方案--------------------
引用:
 如果这个菜属于多种味道类型我应该建一个表关联还是用一个字段好
知识永远不是想当然的,随之你的深度的变化,软件设计也会随时变化。即使是业务和编程技术框架也是经常被推翻、重构的(当然只有经验才能有勇气应付)。

任何概念,它既可以单独作为一个class,从而与其它class关联。同时假设它极端简单,那么你完全没有必要做为一个独立的class,而应该作为关联对象class的一个简单类型(系统预设类型)属性。例如你就可以把“味道”作为“菜”的一个string或者枚举类型的属性就行了。

我们设计软件,当然是越简单越好。只是因为清晰,才独立出去做为class。当然不能为了显示“自己懂class了”于是就把不论什么简单的概念都当作独立的class。

基本上,假设你觉得在2个月以内,完全值得把一个属性扩展为一个独立的知识体系class,那么你就应该仔细研究这概念,并且把它设计为class。否则,不要画蛇添足,而应该把它设计为简单类型属性。

但是这需要一个前提:越是有勇气重构、有勇气改变架构,越能够稳定地并且灵活地“左右逢源”来设计它。越是不断纠结于这种简单的地方,越胆小和盲目。
------其他解决方案--------------------
为什么不可以用自动序号?只是你在输出的时候格式化输出就可以了。 

另外还可以以年月日+在当日的流水号要以啊。

方法很多,都可以。


------其他解决方案--------------------
引用:
我想做一个订餐系统,如菜谱表的编号是用自增好呢还是有字符串做主键好,你不可能给人家编号是1,2 ,3
吧,比如是dish0001,如果用这个怎么能保证这个是唯一的,每次插入就去检查一下数据库?会不会那个菜已有编号它自己录入啊? 如果这个菜属于多种味道类型我应该建一个表关联还是用一个字段好,一个字段好像不行?问了这么多用没有一个做过的数据库设计参考啊?


菜就使用它的名字作为主键就可以了。
------其他解决方案--------------------
你看需求吧,如果一种菜有多个味道,加多几个字段嘛,
------其他解决方案--------------------
引用:
System.Guid.NewGuid().ToString();自动生成一个编号就行了!!


用这个做主键比较好,不会重复,菜谱其它字段的值变化,都不会影响主键。自增的话可能在备份还原时有影响。
------其他解决方案--------------------
引用:
引用:
 如果这个菜属于多种味道类型我应该建一个表关联还是用一个字段好知识永远不是想当然的,随之你的深度的变化,软件设计也会随时变化。即使是业务和编程技术框架也是经常被推翻、重构的(当然只有经验才能有勇气应付)。

任何概念,它既可以单独作为一个class,从而与其它class关联。同时假设它极端简单,那么你完全没有必要做为一个独立的class,而应该……
 你说的道理我受益匪浅。一个菜很多味道,那应该有多种组合,数据库里面应该有一个来标示吧,怎么标示那么多枚举值,字符串连接?
------其他解决方案--------------------
引用:
引用: 如果这个菜属于多种味道类型我应该建一个表关联还是用一个字段好知识永远不是想当然的,随之你的深度的变化,软件设计也会随时变化。即使是业务和编程技术框架也是经常被推翻、重构的(当然只有经验才能有勇气应付)。

任何概念,它既可以单独作为一个class,从而与其它class关联。同时假设它极端简单,那么你完全没有必要做为一个独……
我觉得这个一对多的关系还是建立一个表关联好啊