Я испытываю затруднения, пытаясь сформулировать реальный вопрос, который у меня есть, так что, надеюсь, я смогу разобраться в этом с помощью визуальной помощи.
Что меня интересует, так это ужасен мой нынешний дизайн базы данныхнекорректный, немного неэффективный или ... правильный.
В: Есть ли лучший способ для ячейки строки ссылаться на столбец в другой таблице, кроме простого сохранения строки с именем этого столбца?
Пример: есть две таблицы.
table01: имеет 3 столбца - c_id, customer, tier ( tier содержит имя столбца уровня в table02 )
table02: имеет 5 столбцов - i_id, item, tier1, tier2, tier3
table01 +------+----------+------+
|'c_id'|'customer'|'tier'|
+------+----------+------+
| 1 | John | tier1|
| 2 | Lisa | tier2|
| 3 | Mike | tier1|
| 4 | Tom | tier3|
+------+----------+------+
table02 +------+------+-------+-------+-------+
|'i_id'|'item'|'tier1'|'tier2'|'tier3'|
+------+------+-------+-------+-------+
| 1 | apple| $1.99 | $2.99 | $3.99 |
| 2 | chalk| $2.99 | $3.99 | $4.99 |
| 3 | pens | $3.99 | $4.99 | $5.99 |
| 4 | shirt| $4.99 | $5.99 | $6.99 |
+------+------+-------+-------+-------+
Результат:
John +------+-------+
| apple| $1.99 |
| chalk| $2.99 |
| pens | $3.99 |
| shirt| $4.99 |
+------+-------+
При выборе строки Джона будет получен уровень 1, которыйзатем используется для запроса table02.tier1 и получения содержимого этого столбца.(При этом снижены цены для клиентов уровня 1).В этом случае элементы уровня 1 будут отображаться с их правильными ценами.
Существует ли более эффективный способ ссылки на имя столбца внешней таблицы, например ... в стиле внешних ключей?Где, если имя столбца изменится, тогда эта информация попадет в другие связанные ячейки данных? Верен ли мой подход или мне следует изменить структуру своей работы?