실제 질문을 작성하는 데 어려움을 겪고 있습니다. 따라서 시각 보조 도구를 통해 요점을 얻을 수 있습니다.MySQL - 열 참조 최적화?
현재 데이터베이스 디자인에 끔찍한 결함이 있는지, 약간 비효율적인지, 또는 올바른지 여부는 궁금합니다.
Q : 행 셀이 다른 테이블의 열을 참조하는 더 좋은 방법이 있습니까? 그 열 이름의 문자열을 저장하는 것 외에 다른 방법이 있습니까?
예 : 두 개의 표가 있습니다.
table01 : 3 열이 - C_ID, 고객, 계층을
table02 (계층이 table02에있는 계층의 열 이름을 보유) : - i_id, 항목, tier1, tier2, 계층 3
5 열이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 |
+------+-------+
tier1을 얻을 것이다 요한의 행을 선택하는 그런 다음 table02.tier1을 쿼리하고 해당 열의 내용을 가져 오는 데 사용됩니다. (tier1 고객의 할인 가격에서). tier1 항목은 올바른 가격으로 표시됩니다.
외부 테이블의 열 이름을 참조하는 더 효율적인 방법이 있습니까? 예를 들어 외래 키 스타일입니까? 열 이름이 변경되면 해당 정보가 다른 연결된 데이터 셀로 이동됩니까? 내 접근법이 맞습니까? 아니면 내가 어떻게 작동하는지 재구성해야합니까?
'table02'의'i_id'가'table01'의'c_id'와 합류 했습니까? 그렇지 않다면,'table02'의 어떤 행이'table01'의 행과 관련이 있는지 어떻게 결정합니까? –