0

我被要求允许用户在每个字段中输入多个值。所以选择是无限的。

例如。列是:CompanyID-公司名称网站Key_Markets M&A_History Highlights Region Comments

一个场景是一家公司可以有多个网站、主要市场、地区、蚀刻。我将如何专业地做到这一点?我正在考虑将每一列放在一个单独的表格中。

4

2 回答 2

2

基本上有三种方法可以实现这一点。

1)将多个字段分别写入一列。这将是一个非常糟糕的设计,您必须处理应用程序中的拆分 - 不要这样做;-)

2)使用一张表多组来存储数据。这对于参数是有意义的,但如果您对每个客户都有不同的值,则不是真的。例如:

  • 公司编号
  • 组ID
  • 位置
  • 价值

例子:

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 和关键市场存储在交叉表中。因此,您不需要将关键市场存储为每个客户的字符串!

于 2013-05-27T14:12:45.953 回答
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

等等。然后,您需要使用连接将所有信息连接到一个记录集中。

于 2013-05-27T14:04:19.747 回答