收录日期:2019/12/11 20:15:35 时间:2016/07/18 18:11:06 标签:MySQL
数据库table原先是这样的:

table company (
company_id 
company_name
... ...
... ...


商家 - 客户

company A, company B,company C, company D ... ...都是 company Z的客户。1:MANY

company table只有一个是商家company Z,其它都他的客户。


现在要改 company Z,company ZZZ,company ZZZZ ... ...都是商家. MANY:MANY

办法到是有,加一table就可以了。但不知好好,想听其他人的想法。

一种设计方法。

create table company (
company_id int primary key,
company_name varchar(100) not null,
... ...
... ...
);

create table supplyChain (
supplier int ,
cusomter int ,
primary key (supplier,cusomter),
foreign key (supplier) references company(company_id),
foreign key (cusomter) references company(company_id)
);
支持这种设计,达到了第三范式。
不过,使用外键的话最好支持级联删除和修改,这样更容易保持数据一致性。
另外,如果楼主使用mysql 4.0以前的版本不支持外键。

引用 1 楼 acmain_chm 的回复:
一种设计方法。

 create table company (
  company_id int primary key,
  company_name varchar(100) not null,
  ... ...
  ... ...
 );

 create table supplyChain (
  supplier int ,
  cusomter int ,
  primary key (supplier,cusomter),
  foreign key (supplier) references company(company_id),
  foreign key (cusomter) references company(company_id)
 );

寻求一个属性栏Grid控件 大侠看一下,哪里有错误(存储过程) 这句SQL语句老报错,请大家帮忙看看,3Q 给四分妹散分 VB.NET搜索原理、探讨、思维,小弟感激不尽! 如何将u12289 转换成汉字... 求解... 在线等待.. SSH2开发时遇到的问题求助,关于SessionFactory。 两表之间update问题【先辈帮忙】 为什么struts2 action自动被ProxyFactoryBean拦截? 【对这次倒版,发表点感想.】 对同一设备文件操作,write后,能read出刚write的内容,为什么??? 活在这个世界太累了。 关于DSE算法的问题 求正则表达式的写法 小白又提问...怎么分行读取textbox里的内容 那位有asp横向菜单(支持无限级)的例子。发给我一份 directshow里的摄像头捕获例子的几个问题! 阶乘的和 (散分)性格太内向,做什么事都难成功。 程序简单,但时总有一些问题。高手指导一下!! 求助,怎样通过C#读取WORD里表格,并判断合并和拆分单元格 有文档的视图怎么理解? 求ISD4003 资料 实习生在什么时候谈论转试用比较合适? 有文档的视图怎么理解? 日志类 请老大们帮我看下这段数据库代码(特急,在线等) 帮帮我吧! 在同一namespace里定义了,却报错说未声明的奇怪问题 为什么男生不赞同女孩子学C??