я думаю , що якщо ваше логічне поле таке , що ви б посилань на них у багатьох випадках було б доцільно мати окрему таблицю, приклад DeletedPages або SpecialPages, який буде мати багато логічних полів типу, як is_deleted
, is_hidden
, is_really_deleted
, і requires_higher_user
т.д., і тоді ви взяли б об'єднання, щоб отримати їх.
Зазвичай розмір цієї таблиці буде меншим, і ви отримаєте певну перевагу, приймаючи об'єднання, особливо, що стосується читабельності та ремонтопридатності коду. І для цього типу запитів:
select all pages where is_deleted = 1
Швидше було б реалізувати його так:
select all pages where pages
inner join DeletedPages on page.id=deleted_pages.page_id
Думаю, я десь читав про бази даних mysql, що вам потрібно поле, щоб принаймні мати значення 3, щоб індексація працювала в цьому полі, але, будь ласка, підтвердьте це.