У нас есть сотрудники с отделом и названием, оба нуждаются в переводе, поэтому мы выбираем этот дизайн для поддержки i18n.
вот схема: диаграмма дБ
Мы хотим запросить все переводы в запросе.
У нас есть 5 строк в таблице Language, 500 ~ 1000 в таблице Employee, <= 100 в таблице Department, <= 100 в таблице Title. </p>
Я пробовал эти два запроса и посмотрелобъяснение до сих пор не может определить, какой использовать.
Какой запрос более эффективен?или есть лучший запрос?
SELECT
e.id AS id,
e.name AS employeeName,
e.imgUrl AS imgUrl,
e.level AS level,
edt.departmentId AS departmentId,
edt.titleId AS titleId,
tts.name AS title,
dts.name AS department,
l.id AS languageId,
l.i18n AS i18n
FROM
Employee e
JOIN EmployeeDepartmentTitle edt ON edt.employeeId = e.id
JOIN Department d ON d.id = edt.departmentId
JOIN DepartmentTs dts ON d.id = dts.departmentId
JOIN Title t ON t.id = edt.titleId
JOIN TitleTs tts ON t.id = tts.titleId
JOIN Language l ON l.id = dts.languageId
JOIN Language l2 ON l2.id = tts.languageId
WHERE
l.id = l2.id;
SELECT
e.id AS id,
e.name AS employeeName,
e.imgUrl AS imgUrl,
e.level AS level,
edt.departmentId AS departmentId,
edt.titleId AS titleId,
tts.name AS title,
dts.name AS department,
l.id AS languageId,
l.i18n AS i18n
FROM
Employee e
JOIN Language l
JOIN EmployeeDepartmentTitle edt ON edt.employeeId = e.id
JOIN Department d ON d.id = edt.departmentId
JOIN DepartmentTs dts ON d.id = dts.departmentId AND l.id = dts.languageId
JOIN Title t ON t.id = edt.titleId
JOIN TitleTs tts ON t.id = tts.titleId AND l.id = tts.languageId
;