我正在考虑更改数据库方案以减少表的数量。我有几个包含不同但相似数据的表,我想知道以这种方式保留它是否是最佳做法,或者将它们组合起来是否会很复杂。
例如,假设我有以下两个表:
Table `status`
`status_id` | `status_text`
---------------------------
1 | Open
2 | Closed
3 | On Hold
Table `type`
`type_id` | `type_text`
---------------------------
1 | Regular Work
2 | Advanced Work
3 | Warranty Work
将这些组合成一个表格是否有利,例如下表?
Table `text`
`id` | `type` | `text`
-------------------------------------------
1 | 1 | Open
2 | 1 | Closed
3 | 1 | On Hold
1 | 2 | Regular Work
2 | 2 | Advanced Work
3 | 2 | Warranty Work
type
列将关联到表示数据集类型的 PHP 常量。
我目前大概有 6 个表格,其中的数据完全符合这个方案。它们是如此相似,而且每个只包含 2-5 行,这让我很烦恼。我真的很想像上面那样将它们结合起来,但我不确定这样做是否会出现并发症,或者它是否违反了最佳实践。
我确实意识到 id
列会发生冲突并且不会成为主键的候选者,但它将是一个唯一键以及 type
以防止冲突。我不担心 auto_increment,因为这些表是手动管理的。
还要记住的另一件事是,这些表涉及多个 JOINS。除了向 ON 子句添加一个条件之外,我不认为它会使 JOIN 复杂化。
如果这是一个重复的问题,我深表歉意,这似乎是一个很难查找的主题,因为我提出的不是关于选择数据的常见问题,而是方案。
最佳答案
没有。这不行。您将在正确的数据库设计/规范化方面倒退,并且不必要地混淆了您的数据。
当然你可以做到这一点,但你会在将来的某个时候后悔这样做。您是否真的希望收到这样的问题:“嘿 Demonslay335,文本类型表中的这种工作类型是什么文本类型?您能帮我打出来吗?Typey-type type type。”
一个词说多了就会变成乱码,就像对数据进行元类型化一样。
关于mysql - 合并 MySQL 数据表是最佳实践吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14225023/