日期:2014-05-18  浏览次数:20644 次

[请教]供应商与客户分表设计与并为一个表设计的优劣比较
供应商与客户的基本资料来讲,有很多共同点,是合成一个表设计好,还是分开来设计好?
当然,各有优缺点,希望大家能说出具体的优缺点。

------解决方案--------------------
供应商和客户在数据关系模型中属于两个独立的对象,建议分别建表。
------解决方案--------------------
还是分开的好,除非楼主不准备区分他们.
------解决方案--------------------
如果,你的供应商与客户都不少,那就分开,理由是供应商与客户虽然有很多共同点,毕竟是两个事物,区别是很多的,分开以后的表关系可以简单清楚些

------解决方案--------------------
你是供应商的客户,你还是客户的供应商.
------解决方案--------------------
看系统大小和影响这些表的相关数据
如果操作比较频繁,建议分开
如果操作不是很多而且很多信息既是客户又是供应商最好合并
------解决方案--------------------
供应商、客户:企业合作伙伴, 交易账户上区分:供应商、客户
create table bo_friend ( friend_id, friend_name, friend_address, .. )
create table bo_contact ( contact_id, contact_name, friend_id, ... )
create table bo_account ( account_id, friend_id, bank_info, .. )
create table bo_contract ( contract_id, account_id, contract_type [supply,customer], .. )
create table bo_product ( product_id, ... )
create table bi_contract_item ( item_id, contract_id, product_id, ... )
create table bi_contract2supply ( contract_id, supply_specialInfo,..)
create table bi_contract2customer ( contract_id, customer_specialInfo,.. )
说明:
bo_ 基本对象{friend(合作伙伴), contact(联系人), account(帐户), contract(合同), product(产品), ..}
bi_ 商务信息{contract_item(合同条目), contract2supply(供应商合同(特别)条款),contract2customer(客户合同(特别)条款)}
------解决方案--------------------
上面是个人设计。允许批评,欢迎探讨
------解决方案--------------------
建议区分开 分开建表

至于共同点 楼主可以吧这些共同点建到其中一个表里面去 

------解决方案--------------------
在工作中,我一直也是按照分类分别建表的。但一次偶然的机会见到了一个系统,在一个表(friend)里存放供应商、客户、代理...等不同的信息。琢磨后,深以为然。其实一个活跃的企业与它的合作伙伴之间的关系也是很活跃的。
------解决方案--------------------
建议区分开 分开建表 

------解决方案--------------------
建议:
http://topic.csdn.net/u/20080112/14/03594998-b557-450e-840b-1d12c366b065.html
你看完那個就知道如何設計了.给CSDN留點空間,哈哈。
------解决方案--------------------
你们的服务的使用者--上家 ,也即你的客户
你的资源的提供者--下家,也即你的供应商

分表存.

如果:
既然客户可能也是供应商,供应商也可能是客户.
即同一个企业 companyX 可能是你们 a项服务或产品的资源提供者, 它又是你们 b项服务或产品的消费者.

要么,分开. 即 companyX 有两个帐户, 分别在下家和上家两个数据库里. 这样,就是明确的划分出了上家和下家, 即 上家里的companyX与下家里的companyX没有任何联系
要么,合并, 采用更复杂的结构设计,比如引入角色及权限, 统一在一种结构里处理. 这样,不分上家和下家,无论上家下家都是你的联系人,只不过companyX 具有 上家和下家两种角色及对应的权限.
------解决方案--------------------
若分开,设计简单,实现容易,但用户体验不好.
若合并,反之.
------解决方案--------------------
十分重要的因素要考虑清楚: 应用环境及需求。
一些应用系统的使用者在其工作场景中,主要是面向最终(个人)用户的[--场景1],还是与企业单位交互的[--场景2]?
(通常而言供应商的身份是企业)。

如果在场景1中应用,其实“客户”-“供应商”的共性并不多,将他们分开可以简化问题,更便于业务逻辑的思考。
如果在场景2中应用,业主的业务十分稳定,“客户”-“供应商”的角色难得转换,将他们分开既没问题,也为无不便;将两种角色视为合作伙伴的临时属性的方法需要先仔细设计好系统结构框架(毕竟和人们在常见的业务模式下如此操作者不多)。
如果业主的业务十分活跃,客户-供应商的角色就会经常变换,那么设计好的"合作伙伴"关系能更稳定可靠。
------解决方案--------------------
太遗憾了,又与楼上的观点雷同.

ps:我的表达能力欠佳
------解决方案--------------------
分开存
------解决方案--------------------
星星: 是我高兴:找到一个同志,只是这次比你晚了1:02秒
------解决方案--------------------