Mysql 几个单独的表与一个带有附加列的集成表?

Mysql 几个单独的表与一个带有附加列的集成表?,mysql,database-design,data-structures,Mysql,Database Design,Data Structures,我有3个表,它们都具有相同的结构: // table1 // table2 // table3 +----+------+ +----+------+ +----+------+ | id | name | | id | name | | id | name | +----+------+ +----+------+ +----+------+

我有3个表,它们都具有相同的结构:

// table1              // table2             // table3
+----+------+          +----+------+         +----+------+
| id | name |          | id | name |         | id | name |
+----+------+          +----+------+         +----+------+
| 1  | jack |          | 1  | ali  |         | 1  | peter|
+----+------+          +----+------+         +----+------+
嗯,我想知道,我目前的结构更好,还是一个集成表加上一列?大概是这样的:

+----+------+-------+
| id | name | which |
+----+------+-------+
| 1  | jack | table1|
| 2  | ali  | table2|
| 3  | peter| table3|
+----+------+-------+
select id, name from table1
    union all
select id, name from table2
    union all
select id, name from table3
注意:应该注意,在当前结构(几个表)中,我的查询如下:

+----+------+-------+
| id | name | which |
+----+------+-------+
| 1  | jack | table1|
| 2  | ali  | table2|
| 3  | peter| table3|
+----+------+-------+
select id, name from table1
    union all
select id, name from table2
    union all
select id, name from table3

现在我想知道将这几个表转换为一个表并添加一个新列是否更好?(我认为新列有点过载,是真的吗?

如果您确定所有三个表都将保留相同的属性,那么选择单个表是可以的,如果这可能不会持续,那么就不要考虑它


这可能会给你带来更多帮助。

这既有实际后果,也有哲学后果。从实际的角度来看,如果不知道更多关于数据将如何使用的信息,就很难知道。这个数据的读写比是多少?在单个查询中选择两个或多个表中的数据的频率是多少?如果您必须进行联合以获取所有收集的数据,那么它既慢又麻烦

我更喜欢哲学的方法,从主题开始。这里是否只有一种实体,或者是否有三种不同的实体恰好具有相同的属性?这几乎总是告诉我是否将它们放在同一张表中,并且在大多数情况下也为实际问题提供了正确的答案

我要说的是,我将为额外属性的值寻找更好的名称。“表1”、“表2”和“表3”对我来说似乎非常不透明。主题也应该在这里提供线索

编辑:

既然我已经了解了主题,我会选择一张桌子。这是一个意见,而不是一个硬性规定。所以它会是这样的

+----+-----------+----------+--------------+
| id | word      | language |translation   |
+----+-----------+----------+--------------+
| 1  | butterfly | Spanish  | mariposa     |
| 2  | butterfly | French   | papillon     |
| 3  | butterfly | Italian  | farfalla     |
| 4  | chair     | Spanish  | silla        |
+----+-----------+----------+--------------+

在不知道这些值代表什么、一行代表什么以及它们在现实世界中如何相互关联的情况下,很难判断。实际数据是什么?@davidardridge实际数据是几个字典表。表1:“汉语单词”,表2:“法语单词”等等。。。。!在这些单词中,所有表格都有一个包含英语单词的公共列。我的意思是所有的表格都是英文到法文或英文到中文一个表格应该是正确的方法,而另一列则是语言的关键。好了,现在我明白了。如果你把这些表格称为“法语”、“西班牙语”、“德语”,而不是表1、表2、表3,我会更早看到。