包含多个索引ID的列的正确mysql数据类型

时间:2015-06-01 07:05:22

标签: mysql sqldatatypes

在我的sql中,我有一个包含交易列表的表(交易)

每笔交易都有一个id。

我有另一张表(公司),其中包含公司列表,在此表中有一个交易栏,在这里将有交易的ID,可能有多个交易。

公司表中交易列的最佳数据类型是什么?

很抱歉,如果我的术语不正确!

1 个答案:

答案 0 :(得分:0)

为了保持表中数据项的不稳定性(模块化)以及未来SELECT查询(JOIN,GROUPing,搜索等)的灵活性,最佳做法是使表具有保持这些数据项关系的字段。这将有助于您建立多对多的关系。

所以这是一个例子:

-- Create syntax for TABLE 'companies'
CREATE TABLE `companies` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Create syntax for TABLE 'trades'
CREATE TABLE `trades` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- Create syntax for TABLE 'companies_trades'
CREATE TABLE `companies_trades` (
  `company_id` int(11) unsigned NOT NULL,
  `trade_id` int(11) unsigned NOT NULL,
  PRIMARY KEY (`company_id`,`trade_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;