我遇到的情况应该有15个数据表,对于所有15个表具有相同的属性,但每个表具有不同的用途,并且只有相同的属性名称,因为我需要显示每个表具有不同的记录。
我的所有15个表都包含此属性[no,date,commentary,price,stock]
我已经创建了15个与MySQL具有相同属性的表,但我认为创建这个数据库的方式不对,因为它对于该属性来说看起来是多余的。
我对设计数据库知之甚少。
答案 0 :(得分:3)
您的数据库中只有不同类型的项目吗?阅读normalization in MySQL(Stack Overflow答案)。
您可以使用相同的列来创建15个具有相同列的表,而不是添加一列,告诉该行的项目类型。因此,您的列可能类似于no, type, date, commentary, price, stock
例如,如果您之前有两个分开的表...
表1
----------------------------------------------------------- | no | date | commentary | price | stock | ----------------------------------------------------------- | 1 | 2015-08-01 | Lorem ipsum | 10.00 | 6 | ----------------------------------------------------------- | 2 | 2015-08-07 | Dolor sit | 25.00 | 3 | -----------------------------------------------------------
表2
----------------------------------------------------------- | no | date | commentary | price | stock | ----------------------------------------------------------- | 1 | 2015-08-03 | An usu nemore | 15.00 | 10 | ----------------------------------------------------------- | 2 | 2015-07-30 | Eam at eros | 30.00 | 1 | -----------------------------------------------------------
您只能创建一个包含表1和表2中数据的表。但是此时间表包含新列type
,它告诉该行的项目类型。在此示例中,之前的表1中的数据具有类型10
,而表2中的数据具有类型20
。
------------------------------------------------------------------ | no | type | date | commentary | price | stock | ------------------------------------------------------------------ | 1 | 10 | 2015-08-01 | Lorem ipsum | 10.00 | 6 | ------------------------------------------------------------------ | 2 | 10 | 2015-08-07 | Dolor sit | 25.00 | 3 | ------------------------------------------------------------------ | 3 | 20 | 2015-08-03 | An usu nemore | 15.00 | 10 | ------------------------------------------------------------------ | 4 | 20 | 2015-07-30 | Eam at eros | 30.00 | 1 | ------------------------------------------------------------------
现在您可以执行MySQL查询
SELECT * FROM tablename WHERE type = '10'
从表1中选择所有结果时获得与之前类似的结果。