|-------------------------|
| column_table |
|-------------------------|
| column_id | column_name |
|-----------|-------------|
| 1 | column_1 |
|-----------|-------------|
| 2 | column_2 |
|-------------------------|
|-------------------|
| row_table |
|-------------------|
| row_id | row_name |
|--------|----------|
| 1 | row_1 |
|--------|----------|
| 2 | row_2 |
|-------------------|
|--------------------------------------------|
| value_table |
|--------------------------------------------|
| value_id | column_id | row_id | value_name |
|----------|---------------------------------|
| 1 | 1 | 1 | value_11 |
|----------|---------------------------------|
| 2 | 2 | 1 | value_21 |
|--------------------------------------------|
| 3 | 1 | 2 | value_12 |
|--------------------------------------------|
| 4 | 2 | 2 | value_22 |
|--------------------------------------------|
美好的一天,请告诉我,我如何设计数据库以便能够在结果表中添加行和列?构建一个结果表(显然使用临时表)如下表所示。
|-----------------------------|
| result_table |
|-----------------------------|
| | column_1 | column_2 |
|-------|---------------------|
| row_1 | value_11 | value_21 |
|-------|---------------------|
| row_2 | value_12 | value_22 |
|-----------------------------|
答案 0 :(得分:0)
假设您有以下表格:
|-------------------------|
| column_table |
|-------------------------|
| column_id | column_name |
|-----------|-------------|
| 1 | column_1 |
|-----------|-------------|
| 2 | column_2 |
|-------------------------|
|-------------------|
| row_table |
|-------------------|
| row_id | row_name |
|--------|----------|
| 1 | row_1 |
|--------|----------|
| 2 | row_2 |
|-------------------|
您只需要一个如下表所示的表来存储每个“虚拟”表格单元格的值:
|-----------------------------------------|
| value_table |
|-----------------------------------------|
| value_id | row_id | column_id | value |
|-----------------------------------------|
| 1 | 1 | 1 | 'Y' |
| 2 | 1 | 2 | 915 |
| 3 | 2 | 1 | 'N' |
| 4 | 2 | 1 | 883 |
|-----------------------------------------|
然后您可以发出如下所示的查询以显示结果:
select
value_id
, row_name
, column_name
, value
from
value_table v join
column_table c on
v.columnd_id = c.column_id join
row_table r on
v.row_id = r.row_id
where
{{ some conditions }};