Столбец категории в SQL - PullRequest
1 голос
/ 07 марта 2012

Мне просто интересно, является ли это наиболее эффективным способом использования категорий:

---------------------------------
| ID   | ITEM      | CATEGORY   |
---------------------------------
| 1    | COOKIES   | FOOD       |
| 2    | CAKE      | FOOD       |
| 3    | WATER     | DRINK      |
| 4    | PEANUTS   | FOOD       |
| 5    | PEPSI     | DRINK      |
---------------------------------
 ↑ int  ↑ text      ↑ text        <- [ type of column ]

Тогда мой запрос:

SELECT * FROM `table` WHERE category='FOOD';

Ответы [ 3 ]

3 голосов
/ 07 марта 2012

Я думаю, что если вы немного измените, например, столбец категории в ID категории,

`---------------------------------
| ID   | ITEM      | CATEGORY   |
---------------------------------
| 1    | COOKIES   | 1          |
| 2    | CAKE      | 1          |
| 3    | WATER     | 2          |
| 4    | PEANUTS   | 1          |
| 5    | PEPSI     | 2          |

Плюс таблица категорий

--------------------
| ID   | ITEM      | 
--------------------
| 1    | FOOD  
| 2    | DRINK     

И запрос:

SELECT * FROM `table` WHERE category=1;   (or 2)
0 голосов
/ 07 марта 2012

Вы можете использовать enum вместо text

0 голосов
/ 07 марта 2012

Знаете ли вы о формах нормализации? У вас есть дубликаты данных в вашей таблице. Красивее создать 2 таблицы: item, category.

item: (id, item, category_id)
категория: (идентификатор, имя)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...