■■■■■■■■■多对多关系数据库,增加的修改数据的问题。
有一个企业库,里面的企业除了企业名称、介绍等,还分别属于(国家级名牌企业、省级名牌企业、创新型企业...)等企业类型,一个企业可能同时既是国家级名牌企业又是省级名牌企业或者其它,也有可能只是一个省级名牌企业,这样的关系,我现在准备做3个表,企业表、企业类型表、类型表。
企业表
企业id 企业名称 企业地址 法人代表....
1 a
2 b
.
.
类型表
类型id 类型名称
1 国家级名牌企业
2 省级名牌企业
3 创新型企业
.
.
企业类型表
企业id 类型id
1 1
1 2
2 1
3 1
3 2
.
.
这样设计数据库可以吧,现在问题是增加和修改数据比较麻烦,如增加时,先加企业表后同时在企业类型表增加数据,修改更麻烦,先修改企业表数据后再删除企业类型表这个企业的全部数据,再把修改的数据增加上。。(我只能这样想)这个思路对吗?还有什么简便办法?请大家指教!!
------解决方案--------------------多对多关系数据库基本就是这么设计,你的思路也没错
------解决方案--------------------几个Update而已,不见得多麻烦把。。。
------解决方案--------------------先加企业表后同时在企业类型表增加数据,修改更麻烦,先修改企业表数据后再删除企业类型表这个企业的全部数据,再把修改的数据增加上。。(我只能这样想)这个思路对吗?还有什么简便办法?谢谢!!
=====
可以用事务,和触发器
------解决方案--------------------可以去掉企业类型表,只为企业表增加一个类型字段TypeID,这样就可以避免插入更新要操作两个或多个表了。
接下来解决关联的方法,如果一个企业属于多个类型:
1一个企业插入多个记录,类型字段不同,其它想同
2一个企业只有一条记录,类型字段以 ,或/ (1,2,3)之类的分割类型表的ID,这样数据唯一性更好一些,但你需要在读取或修改时做些处理,比如可以在sqlserver中写个函数,专门用于分割企业表中类型字段的数据
以上两种方法我都见过有用的,个人觉得第二个比较好
------解决方案--------------------如果重新设置企业的(多个)所属类型,先清除原来的类型然后将各个类型插入,逻辑就是如此。如果不麻烦,要程序员干嘛,直接一个美工或者销售人员来开发软件就行了。
------解决方案--------------------麻烦就要想办法简单一点,明知道麻烦还要去做,而不去想想办法——比如换个思路,改改结构。
明知道麻烦还要这么做,那就只能当一辈子代码工!
遇到问题要想办法解决,遇到麻烦的地方也要想办法解决!
程序员是解决问题的,减少麻烦事的,而不是去做麻烦事的。