|
|
|
| Здравствуйте!
у меня есть два небольших целых числа больше нуля
они нужны мне только вместе
поэтому я решил поместить их в одну ячейку
вопрос, какой тип поля лучше использовать для хранения такого значения?
это поле является индексом и по нему часто делается поиск
сейчас я сделал тип varchar и сохраняю числа в виде 2-4
можно хранить это и как число разделенное точкой
повторяю, мне не нужны эти числа по отдельности, сам результат 2-4 я использую как ключ для других переменных
задача - подобрать оптимальный способ хранения таких данных с учетом что это будет индекс и по нему будет вестись поиск
ещё вопрос, намного ли хуже вместо чисел использовать строки?
например не 2-4 а news-page
я просто думаю что если поле integer, то по нему поиск совершается на много быстрее чем по полю vsrchar
может это и не так если поля varchar небольшие? | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(07.03.2010 в 08:42)
| | 2-4 это ключ для чего ,покажите кусок где он используется. | |
|
|
|
|
|
|
|
для: oliss
(07.03.2010 в 11:00)
| |
CREATE TABLE `depend` (
`child` int(10) ,
`parent` int(10) ,
`modules` varchar(5)
)
INSERT INTO `depend` VALUES (1, 3, '2-5');
|
это таблица связей между записями из разных таблиц
она используется например когда один товар одновременно может находится в нескольких категориях
2-5 - это два индекса подчинённого и родительского модуля product это 2, а category это 5
INSERT INTO `depend` VALUES (1, 3, '2-5'); - это означает что товар №1 находится в категории №3 (2-5 означает что именно товар подчинен категории)
раньше я делал 2-5 в двух столбиках - child_module=2 и parent_module=5, но реально во всех запросах эти параметры либо запрашиваются одновременно либо не запрашиваются вообще
поэтому есть смысл сделать из двух столбцов один столбец | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(07.03.2010 в 11:16)
| | А если товар будет относится к 5 категориям | |
|
|
|
|
|
|
|
для: oliss
(07.03.2010 в 13:46)
| |
INSERT INTO `depend` VALUES (1, 3, '2-5');
INSERT INTO `depend` VALUES (1, 5, '2-5');
INSERT INTO `depend` VALUES (1, 6, '2-5');
INSERT INTO `depend` VALUES (1, 13, '2-5');
INSERT INTO `depend` VALUES (1, 2, '2-5');
|
вот товар в пяти категориях
пример выборки товаров из категории №5
SELECT product.* FROM product,depend WHERE depend.parent=5 AND depend.modules='2-5' AND product.id=depend.child
|
я почему и хочу объединить два поля в одно чтобы не писать что модуль подчиненных равен 2 а модуль главных равен 5 | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(07.03.2010 в 16:52)
| | Честно говоря ,смутно понимаю суть вопроса,может вам посмотреть в сторону построения таблиц многие-ко-многим,там применяется таблица связи,притом товар может принадлежать разным категориям и не надо маркировать как 2-5 и тд | |
|
|
|
|
|
|
|
для: oliss
(07.03.2010 в 17:18)
| | честно говоря, я и пытаюсь сделать многие ко многим, только использовать эту таблицу не только для товаров и категорий а и для других таблиц, поэтому и есть поле modules, чтобы показывать с каких таблиц связи | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(07.03.2010 в 17:26)
| | Если у вас одинаковые сущности то проблем нет, можно соединять посредством отношения Многие ко многим ,но если разные типа портала ,то скорей всего в таблице надо держать пути к модулям. | |
|
|
|