【问题标题】:multiple database entries or one with an array?多个数据库条目还是一个带有数组的条目?
【发布时间】:2013-02-03 20:46:28
【问题描述】:
    CREATE TABLE IF NOT EXISTS `user_words` (
      `id` int(15) NOT NULL AUTO_INCREMENT,
      `user` int(15) NOT NULL,
      `word` int(15) NOT NULL,
      PRIMARY KEY (`_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS `words` (
      `words_id` int(15) NOT NULL AUTO_INCREMENT,
      `words_word` VARCHAR(15) NOT NULL,
      PRIMARY KEY (`words_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

我有上面的表,当前存储每个用户的单词,所以结果可能是这样的:

1 - 1 - 1
1 - 1 - 2
1 - 1 - 3

现在字位链接到字表 word=words_id

我想知道这是做到这一点的最佳方式还是说有会更好

CREATE TABLE IF NOT EXISTS `user_words` (
  `id` int(15) NOT NULL AUTO_INCREMENT,
  `user` int(15) NOT NULL,
  `word` TEXT NOT NULL,
  PRIMARY KEY (`_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

1 - 1 - 1 2 3

并使用数组来获取文本字段中的 3 个结果?

【问题讨论】:

  • 第一个选项更好,因为您不应该在字段值内有任何智能。今后,您将无法执行许多标准查询。

标签: mysql arrays


【解决方案1】:

如果您知道您只有 3 个单词,我只会将该单词放入用户表中的一个或 3 个额外字段中,而根本不使用这些表。

如果你需要维护一个单词表,你应该使用你正在使用的这个连接表。所以第一个是要走的路!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    相关资源
    最近更新 更多