MySQL行和列选择

时间:2016-05-03 13:29:24

标签: mysql database database-design datatable

我的HTML

中有一个表结构

enter image description here

需要将数据填充为行和列,某些列的值为“1”

修正了10行和10列,并且有多个表

所以我刚刚创建了一个类似以下的数据库

ga_id (pk)   |   A1  |  A2  |  A3 ......
-------------+-------+------+-------------
 125         |  1    | 0    |  0 ..........
-------------+-------+------+--------------
 126         |  0    | 1    |  1 ...

我收到了以下问题

  1. 为达到同样的目的,我的方法是正确的吗?

  2. 我需要检查列或行是否完全占用值“1”

    例如: - 案例块D4然后我需要检查D1,D2,D3 ..... D10具有相同的值,即1

  3. A4,B4,C4,D4 ....... J4值具有相同的值

    希望我的问题很明确,

2 个答案:

答案 0 :(得分:1)

作为评论,“正确方法”是解决您问题的任何方法。虽然规范化和third normal form是经过测试并且绝对值得掌握的概念,但如果当前结构解决了您的特定问题,请使用它。

可能的标准化DB结构是:

  • 表列:column_id,name
  • 表行:row_id,name
  • 表格:table_id,name
  • 表table_rows_columns:table_id,row_id, column_id,value

答案 1 :(得分:1)

举例来说,规范化的环境看起来像这样:

CREATE TABLE my_table 
(id INT NOT NULL
,x INT NOT NULL
,y CHAR(1) NOT NULL
,val INT NOT NULL
,PRIMARY KEY(id,x,y)
);

INSERT INTO my_table VALUES
(101,2,'B',1),
(101,2,'I',1),
(101,4,'D',1),
(101,5,'I',1),
(101,7,'D',1),
(101,7,'H',1),
(101,8,'G',1);