Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: два значения в одной ячейке
 
 автор: Дмитрий Смаль   (07.03.2010 в 08:42)   письмо автору
 
 

Здравствуйте!

у меня есть два небольших целых числа больше нуля
они нужны мне только вместе
поэтому я решил поместить их в одну ячейку
вопрос, какой тип поля лучше использовать для хранения такого значения?
это поле является индексом и по нему часто делается поиск

сейчас я сделал тип varchar и сохраняю числа в виде 2-4
можно хранить это и как число разделенное точкой
повторяю, мне не нужны эти числа по отдельности, сам результат 2-4 я использую как ключ для других переменных
задача - подобрать оптимальный способ хранения таких данных с учетом что это будет индекс и по нему будет вестись поиск

ещё вопрос, намного ли хуже вместо чисел использовать строки?
например не 2-4 а news-page

я просто думаю что если поле integer, то по нему поиск совершается на много быстрее чем по полю vsrchar
может это и не так если поля varchar небольшие?

  Ответить  
 
 автор: oliss   (07.03.2010 в 11:00)   письмо автору
 
   для: Дмитрий Смаль   (07.03.2010 в 08:42)
 

2-4 это ключ для чего ,покажите кусок где он используется.

  Ответить  
 
 автор: Дмитрий Смаль   (07.03.2010 в 11:16)   письмо автору
 
   для: 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, но реально во всех запросах эти параметры либо запрашиваются одновременно либо не запрашиваются вообще
поэтому есть смысл сделать из двух столбцов один столбец

  Ответить  
 
 автор: oliss   (07.03.2010 в 13:46)   письмо автору
 
   для: Дмитрий Смаль   (07.03.2010 в 11:16)
 

А если товар будет относится к 5 категориям

  Ответить  
 
 автор: Дмитрий Смаль   (07.03.2010 в 16:52)   письмо автору
 
   для: 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

  Ответить  
 
 автор: oliss   (07.03.2010 в 17:18)   письмо автору
 
   для: Дмитрий Смаль   (07.03.2010 в 16:52)
 

Честно говоря ,смутно понимаю суть вопроса,может вам посмотреть в сторону построения таблиц многие-ко-многим,там применяется таблица связи,притом товар может принадлежать разным категориям и не надо маркировать как 2-5 и тд

  Ответить  
 
 автор: Дмитрий Смаль   (07.03.2010 в 17:26)   письмо автору
 
   для: oliss   (07.03.2010 в 17:18)
 

честно говоря, я и пытаюсь сделать многие ко многим, только использовать эту таблицу не только для товаров и категорий а и для других таблиц, поэтому и есть поле modules, чтобы показывать с каких таблиц связи

  Ответить  
 
 автор: oliss   (07.03.2010 в 21:58)   письмо автору
 
   для: Дмитрий Смаль   (07.03.2010 в 17:26)
 

Если у вас одинаковые сущности то проблем нет, можно соединять посредством отношения Многие ко многим ,но если разные типа портала ,то скорей всего в таблице надо держать пути к модулям.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования