내 일반적인 문제는 사용자가 사실상 여러 유형의 필드를 추가하여 항목과 연결할 수 있기를 원합니다. 그래서 고려하고 하나 개의 솔루션은 다음과 같은 : 사용자가 자신의 일부 항목에 매개 변수는 "생년월일"을 추가하고 싶어MySQL에서 ORDER BY COALESCE의 성능에 미치는 영향
table `items`
item_id | name
table `parameters`
parameter_id | name | type
table `values`
item_id | parameter_id | datetimevalue | datevalue | integervalue | etc...
경우, 우리는 매개 변수 테이블에 하나 개의 매개 변수, 다음 하나 개의 항목을 추가 그가이 매개 변수를 갖기를 원하는 각 항목의 값 표에서 datevalue 열에 날짜가 있고 다른 모든 'value'필드는 null로 남았습니다.
나는 BY이 순서는 성능이 좋은 것,
SELECT * from
items
join values on items.item_id = values.item_id
join parameters on parameters.parameter_id = values.parameter_id
where parameter_id = 1
order by coalesce(values.datetimevalue, values.datevalue, values.integervalue...)
내 특정 질문은 할 것, = 1 parameter_id 한이 매개 변수를 가정하여, "생년월일"로 자신의 항목을 주문하려면? 그것은 지표를 잘 활용할 수 있습니까? 불필요한 일을 할 것인가?
내 일반적인 질문은이 접근법이 좋은 습관입니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?
고마워요! 그게 내가 말하는거야! 이런 식으로 COALESCE 명령을 사용하는 것에 대해 누군가가 말할 수 있다면 여전히 궁금합니다. –