mysql设置表--db理论

时间:2013-10-27 08:38:02

标签: mysql

所以,

我需要一个设置表来管理我的网络应用的某些部分。

我想出了这个:

CREATE TABLE `settings` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `key` char(55) NOT NULL DEFAULT '',
  `value` longtext NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `key` (`key`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

enter image description here

我想知道将设置划分为int和text containsign是否有益。所以我会在另一个表中拥有除了words_stop之外的所有内容。

你怎么看?这有益吗?或者我可以坚持长篇大论并将所有内容放在同一张桌子上?

2 个答案:

答案 0 :(得分:0)

将它们分开是没有意义的,没有。

通过将数字存储为数字类型而获得的两个主要好处是,您有时最终会存储较少的实际位,并且在某些DBMS中对实际数字类型执行数学运算会更容易。我怀疑你会遇到太空问题,我怀疑你会用这些价值观做数学。不值得将它们分开,它只会变得混乱。

答案 1 :(得分:0)

我认为就性能而言,这会影响太多。如果要创建另一个表来存储文本,那么您将需要一个列来存储外键,然后将表链接到settings表。

如果你有一个非常庞大的表并且表中有很多列而你正在使用*

从表中选择值,这可能是有益的。