2 mrdexs mrdexs 于 2014.10.08 19:11 提问

一个数据库设计的问题

是这样的要开发一个在线订餐的网站,跟淘宝的方式差不多,饭店在线注册后就可以在网站上接受在线订餐,用户可以根据自己所在区域选择较近的饭店进行订餐 ,这样一来数据库设计的时候 就出了一个问题
每家饭店的菜品不一定一样
有些菜品一样比如都是是鱼香肉丝价格会有差异
这个菜品表要怎么设计按照原来设计
菜品表(主键,名称,规格,价格,图品地址,外键【所属饭店】)
这样设计的话如果一道菜出现在两家或两家以上的饭店切价格规格都相同数据就产生冗余了
是对应每家饭店自动生成含有相同字段的表还是有其他更好的办法?

2个回答

le1boy
le1boy   2014.10.09 15:46

不要怕冗余,完全没有冗余的数据库设计很难的,这样设计表以后,查询以及别的更新逻辑很容易实现,不要单单考虑数据冗余这一个方面,整个的逻辑也是需要考虑的

sowit
sowit   2015.10.09 06:49

可以拆表。

菜品信息表: 主键(菜品编号) 菜品名称 图片

菜品-饭店价格信息表:

主键 菜品编号 饭店编号 价格 规格

饭店信息表:主键 饭店编号 ……

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
20个数据库设计浅谈建议
1. 使用完整的一致的数据表名称和字段名,如:School, StudentCourse, CourseID 2.数据表名称使用单数,比如使用StudentCourse 而不是StudentCourses,数据表代表实体的一个集合,因此没有必要使用复数名称。 3. 数据表名称不要使用空格,比如StudentCourse 比Student Course更好。 4.数据表名称不要使用
数据库设计中应注意的问题
引言数据库设计是信息系统设计的基础,一个好的数据库设计在满足了软件需求之外,还要易维护、易扩充等等要求。当然,对专家们反复强调的数据的一致性、冗余性、访问效率等问题的解决,很大程度上取决于数据库设计者的经验和专业水平。但这不妨碍我们根据过去的经验,从实用的角度给出数据库设计所要要考虑的问题并尽可能给出相应的解决方案,从而给信息系统的数据库设计者一些有益的启示。(注:这里的数据库设计主要指数据库中表
数据库设计步骤--了解用户需求:拿出一个问题清单
从项目一开始,就应该着手考虑询问客户哪些问题以便于更好地了解项目的目标和范围。 1.功能: 主要讨论期望系统实现什么功能,还要涉及如何实现这些功能。记录客户提出的系统应该如何工作的想法仍有用的。 •系统应该实现什么功能? •构建此系统的原因是什么?你希望它究成哪些任务? •系统应该呈现什么样的外观?大致绘出用户界面? •系统的不同部分分别需要多少响应时间(通常交互式响应时间应该小于
数据库设计以及优化注意的问题
总的来说,mysql优化: 1、索引和sql语句优化,查询优化 2、数据库表结构优化 3、数据库架构优化 4、算法优化 5、硬件升级 一、数据库结构的设计 遇到大数据并发访问 ——>合理的数据冗余 为了保证数据库的一致性和完整性,在逻辑设计的时候往往会设计过多的表间关联,尽可能的降低数据的冗余。(例如用户表的地区,我们可以把地区另外存放到一个地区表中)如果数据冗余低,...
数据库设计中遇到的问题
时间字段的选择设计数据库时,难免会考虑到时间字段的设计,在这里总结一下在mysql中,时间的类型一般有如下: java和mysql时间类型对照表如下 在开发中不使用varchar或者char来存储时间,因为无法做到排序,性能收到影响 timestamp 4kb的只能记录时间到2038年项目最后采用的是datetime类型
在设计数据库时需要注意哪些?
1.在针对表结构设计时如果是n对n的关系,尽可能的设计成1对N的关系。避免表关联太复杂,以便于提高查询效率。 2.首先在定义字段名称是尽可能以简单字符串来完成,建议是能读懂字段所存储内容的大概意思,同时字段名称的长度在14个字符以内。 3.明确表字段是否允许为空,不建议表字段都为可为空,因为当为null时就会影响到查询效率。 4.在设置字段类型是时需要考虑字段应该存放那些值,有效的节
如何做好数据库设计
在大致了解需求之后,就非常急切编码,而不是拿出一段时间来思考数据库的设计,这种做法是非常不专业的,也是我们应该避免的。数据库是我们软件大楼的根基,我们一定要重视起来,因为如果不重视,会出现很多诸如输出数据错误、性能差和难于后期维护等问题。        所以数据库设计很重要。        那么如何设计出来一个好的数据库呢?        这是一个不太好回答的问题,其实设计出好的数据库这个问题本身
互联网公司面试问题总结之设计模式和数据库
一、设计模式 1、进程请求资源死锁,如何在编程上防止死锁? 2、手写singleton。如何避免多线程同步问题? 3、实现一个singleton的基类,令其派生类都是singleton?( 利用template ) 4、常用设计模式,UML图 5、知道的设计模式有哪些,区别 6、手写观察者模式(语言任意选) 7、(1)手写生产者消费者模式     (2)生产者模式和消费者模式怎么
设计数据库时需要考虑的问题
成功的管理系统=50% 的业务+(25%的数据库+25%的程序) 1、考察现有系统环境     大多数数据库项目都不是从头开始建立的,通常机构内总会存在用来满足特定需求的现有系统。显然,现有系统并不完美,否则你就不必再建立新系统了。但是对旧系统的研究可以让你发现一些可能会忽略的细微问题。一般来说,考察现有系统对你绝对有好处。 2、充分预计需求的升级趋势     询问用户如何看待未来
一个项目报表数据库设计的问题.
  如何设计的合理.         1用户管理模块:企业用户在线注册成功经审核后可以登陆到系统主页面,进行项目的填写,本企业项目的预览,项目的修改。  2 项目管理模块:县区用户登陆成功后进入系统主页面,能对县区内企业填写的项目进行管理,有查询功能根据查询条件生成报表,有打印、导出功能。市用户有最高权限,能对县区用户企业进行管理,有查询功能根据查询条件生成报表,有打印、导出功能。