鄙生建库后求各位前辈给建议。 真不好意思,各位,图有点不好看,开头的第一个图是误传的,下面有相同的图。那个ER图看起来很乱,但是细看能看出来,上个小图吧:CSDN没有办法编辑原帖子真不好。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 大概看了下 7个表基本够用 但是不建议使用名称作为主键可以考虑加个ID ,其他表关联的时候也加上这个表的ID 这样的话在程序中好处理些 游客表中为什么会有那个景点编号,是因为你看下我的ER图,有个一对多的关系,所以要并入到其中,这是为了查询哪些景点游客旅游的频率大。我是用城市表中的城市名作为主键的,ID的话感觉没必要。为什么要用ID作为主键好点呢?景区确实包括很多景点,所以是一对多的关系,把景区的主键ScenID并入到了景点之中。 /*1、Tourist表:不要加景点编号,原因是游客和景点是多对多的关系,需要建立中间表;2、City表:不要以名称作为主键,加个ID来标识下;3、Scenery表:城市名改为城市ID;4、Place表:同样不要以名称做主键,加ID;5、Hotel表:加ID,做主键;6、Near表:最好加个标识ID,宾馆名称改为宾馆ID。*/ PS:“价格”类字段为啥都用varchar?是不是用数字类或money企不是更好? 哦。我想了想看了下面各位前辈的回复,确实是,游客和景区,游客和城市是多对多的关系,需要建立中间表。景点和名胜古迹不是一回事。比如说XX景区有个喷泉。这里的XX就是景区,喷泉就是属于这个景区的名胜古迹。谢谢前辈了。 明白了不少,游客和城市,游客和景区之间应该是多对多的关系,我想知道的是,为什么用ID作主键?只是为了标识唯一性吗?应该为int类型还是varchar还是char呢? 为什么用ID作主键?唯一性是一个原因,一般来说,名称是保证不了不修改的,长期来说,一般不用名称作为唯一标识。另一个原因是,主键往往用于与其它数据关联,这时用个较短的ID可以提高性能,如果用名称,长短不一定是存在隐患的。所以选择主键类型的时候尽量短而唯一,能int当然最好 哦 这段话我不太明白,先考虑下那个ID吧,那个ID,我找了下资料,有用int的,并且是自动增长的,有用nchar的,我想我这个地方的话,应该是int,nchar的话一般是用在公司编号上面,位数保持不变。那么问题就是:用int的话,比如说城市表有个CityID,设置为int类型,那么它是不是要设置为自动增长呢?如果要设置的话,触发器不太会写。不设置的话,有没有什么影响? 关系大概清楚了,就差这个ID的int类型是不是自动生成了。 关系大概清楚了,就差这个ID的int类型是不是自动生成了一般是设成自动增长,在列属性里的标识符规范中可以设置增量数,不然的话在输入数据时需要你自己手动输入ID是多少 哦。用SQL语句的话呢?是不是如果我要对它进行操作的话,就不要设置为自动增长。相反,如果不对它操作,就设置为自动增长? 谢谢,我知道了。alter table tb add id int identity(1,1) 。 sql树形结构的级联删除 请问 如何通过查询分析器访问局域网的其他机器数据库的表内容 SQL2005 复制表 关于查看存储过程引用表的几个疑问 sql查询问题,求高手 在线等,麻烦高手帮我写个查询语句 把Excel中的数据导入到表中出现的错误 在SQL中用TPL模板将查询的数据显示在HTML中 [讨论]续:CSDN常用语征集,少放点分,补补漏 ^_^ vfp 求一SQL语句!在线等,谢谢 向大家求教一个统计行数的SQL语句
我是用城市表中的城市名作为主键的,ID的话感觉没必要。为什么要用ID作为主键好点呢?
景区确实包括很多景点,所以是一对多的关系,把景区的主键ScenID并入到了景点之中。
1、Tourist表:不要加景点编号,原因是游客和景点是多对多的关系,需要建立中间表;
2、City表:不要以名称作为主键,加个ID来标识下;
3、Scenery表:城市名改为城市ID;
4、Place表:同样不要以名称做主键,加ID;
5、Hotel表:加ID,做主键;
6、Near表:最好加个标识ID,宾馆名称改为宾馆ID。
*/
PS:“价格”类字段为啥都用varchar?是不是用数字类或money企不是更好?
景点和名胜古迹不是一回事。比如说XX景区有个喷泉。这里的XX就是景区,喷泉就是属于这个景区的名胜古迹。
谢谢前辈了。
另一个原因是,主键往往用于与其它数据关联,这时用个较短的ID可以提高性能,如果用名称,长短不一定是存在隐患的。所以选择主键类型的时候尽量短而唯一,能int当然最好
那么问题就是:用int的话,比如说城市表有个CityID,设置为int类型,那么它是不是要设置为自动增长呢?如果要设置的话,触发器不太会写。不设置的话,有没有什么影响?
一般是设成自动增长,在列属性里的标识符规范中可以设置增量数,不然的话在输入数据时需要你自己手动输入ID是多少