我被要求允许用户在EVERY字段中输入多个值。所以选项是无限的。
例如。列是: CompanyID- 公司名 网站 Key_Markets M&安培; A_History 强调 区域 评论
一个场景是公司可以拥有多个网站,关键市场,区域,蚀刻。我该如何专业地做这件事?我想把每一列都放在一个单独的表中。
答案 0 :(得分:2)
基本上有三种方法可以实现这一点。
1)将多个字段分别写入一列。这将是一个非常糟糕的设计,您将不得不处理应用程序中的拆分 - 不要这样做; - )
2)使用一个包含多个组的表来存储数据。这对于参数是有意义的,但如果每个客户都有不同的值,则不是这样。例如:
示例:
108001, 'homepage', 1, 'www.mypage.com';
108001, 'homepage', 2, 'www.mysecondpage.com';
108001, 'homepage', 3, 'www.anotherpage.com';
108001, 'markets', 1, 'erp';
108001, 'markets', 2, 'software';
108001, 'region', 1, 'germany';
108001, 'region', 2, 'austria';
108001, 'region', 3, 'poland';
3)为每个1:n关系使用单独的表格!我猜这将是满足您需求的最佳解决方案。这样做的好处是可以轻松扩展架构并在其中存储更多数据。例如,如果您决定存储每个地区或主要市场的用户数量等。
另一点:使用n:m关系来避免数据库中出现双重内容!例如,密钥市场和区域应存储在完全分离的表中,并将客户和密钥市场的ID存储在交叉表中。因此,您不需要将关键市场存储为每个客户的字符串!
答案 1 :(得分:0)
您需要一个数据库结构,如:
table_master_companies
- record_id
- company_name
table_websites
- record_id
- company_id
- website_address
table_key_markets
- record_id
- company_id
- key_market
等。然后,您需要使用连接将所有信息连接到单个记录集中。