imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 03.05.2005, 15:05     # 1
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
строки с разными параметрами в MYSQL

Необходимо сделать небольшую админку, которая управляла бы формами ввода. Например есть 3 каких-то категории, у них есть формы ввода, но с разными полями. (т.е. в одном это поле color, name, id к примеру, а в другой direction, type, id).
вопрос заключается в следущем: как мне организовать запись таких данных в mysql в одну таблицу? т.е. у строк, в зависимости от категории будут разные имена столбцов. Имеет ли смысл делать столбцы для всех и забивать их NULL, если нет значения или лучше создать другую таблицу?

таких категорий(таблиц) планируется много. Т.е. и полей тоже немало (около 100 в общей сложности - т.е. по 3-5 полей от каждой категории.)

Надеюсь я понятно изложил проблему . Готов объяснить еще подробней.
Спасибо.
hempsmoke вне форума  
Старый 03.05.2005, 15:14     # 2
Merlin Cori
Moderator
 
Аватар для Merlin Cori
 
Регистрация: 29.04.2002
Адрес: Moscow
Пол: Male
Сообщения: 2 980

Merlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБог
Merlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБог
Т.е., если я правильно понял, тебе надо запрос собирать из разных частей, как из конструктора? Можно имя столбца передавать в качестве параметра, а потом подстыковывать к основной части запроса
__________________
Есть две бесконечные вещи, Вселенная и глупость.
Впрочем, на счет Вселенной, я не уверен



Вклад IMHO.WS в медицину и науку
Присоединяйтесь!!!!!
Merlin Cori вне форума  
Старый 03.05.2005, 15:25     # 3
Madness
KpTeaM
 
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261

Madness СуперБогMadness СуперБогMadness СуперБог
Madness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБог
hempsmoke
Создаешь столбец, где прописываешь тип категории + столбцы с данными, типа data1, data2, data3 и в зависимости от типа категории трактуешь данные по разному. Можно данные вынести в отдельные таблицы. По-моему так логично и понятно.
__________________
Над струнами вен моих
Лезвия осени,
Их сталь леденящая
В просинь рук просится...
©Темнозорь
Madness вне форума  
Старый 03.05.2005, 15:41     # 4
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
Merlin Cori
фактически да. часть формы у всех категорий однакова (name,email), а остальные разные.
Цитата:
Можно имя столбца передавать в качестве параметра, а потом подстыковывать к основной части запроса
т.е. ты предлагаешь в таблицу со столбцами id name mail color, если есть данные не для color, а для description, просто создать еще один столбец с именем description, а color заполнить NULL ?

Madness
ммм.. немного не догнал - создаешь столбец, а в нем еще столбец? или ты имеешь ввиду способ, как форумы хранят ответы и результаты для голосований? тогда как же мне сортировать такие данные?
hempsmoke вне форума  
Старый 03.05.2005, 15:48     # 5
Merlin Cori
Moderator
 
Аватар для Merlin Cori
 
Регистрация: 29.04.2002
Адрес: Moscow
Пол: Male
Сообщения: 2 980

Merlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБог
Merlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБогMerlin Cori СуперБог
Именно так
__________________
Есть две бесконечные вещи, Вселенная и глупость.
Впрочем, на счет Вселенной, я не уверен



Вклад IMHO.WS в медицину и науку
Присоединяйтесь!!!!!
Merlin Cori вне форума  
Старый 03.05.2005, 16:35     # 6
Madness
KpTeaM
 
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261

Madness СуперБогMadness СуперБогMadness СуперБог
Madness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБог
Merlin Cori
Так много пустых ячеек получится. Обычно так и делают.

hempsmoke
К таблице добавляешь столбец с типом данных + столбцы с самими данными(в количестве самого большого необходимого числа). В типе ты помечаешь что у тебя в данных хранится и в соответствии с этим обрабатываешь их.

>тогда как же мне сортировать такие данные?
После выборки естессно.
__________________
Над струнами вен моих
Лезвия осени,
Их сталь леденящая
В просинь рук просится...
©Темнозорь
Madness вне форума  
Старый 03.05.2005, 17:25     # 7
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
Madness
а, понял. спасибо.
только вот тип данных-то у столбцов разный может быть. перед каждым столбцом еще один вести столбец, который определяет тип следущего?

Merlin Cori
ну вот у меня и делемма - либо так, либо как Madness говорит. Тока я видно еще не допонял
hempsmoke вне форума  
Старый 03.05.2005, 17:51     # 8
Madness
KpTeaM
 
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261

Madness СуперБогMadness СуперБогMadness СуперБог
Madness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБогMadness СуперБог
hempsmoke
>еред каждым столбцом еще один вести столбец, который определяет тип следущего?
Бррр, это то накой. Вводишь столбец(data_id) в стоке которого пишешь "профиль", например, а в data1,2,3 - 'nick123','nick123@mail.ru','число постов например'. В своей проге пишешь че-нить типа select * from table where data_id='профиль' и распоряжаешься данными, как данными профиля. Иль, например, data_id='mail', тогда в data1,2,3 например такое - 'nick123@mail.ru','smtp.mail.ru','pop.mail.ru'. И т.д. Соответственно вся логика в программе должна быть.

ЗЫ. Делай как Merlin Cori грит, гемора меньше ;)
__________________
Над струнами вен моих
Лезвия осени,
Их сталь леденящая
В просинь рук просится...
©Темнозорь
Madness вне форума  
Старый 03.05.2005, 22:17     # 9
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
Madness
ну да, я так и думал )

вот и я думаю как быть, ведь данных-то много. какой лучше способ выбрать с точки зрения времени обработки? забивать нулями неиспользуемые ячейки или как ты предложил ?
hempsmoke вне форума  
Старый 03.05.2005, 22:42     # 10
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
Имхо, хранить кучу данных в одной ячейке, которые могут обновляться независимо - не есть гуд.
Есть еще вариант, который у меня в свое время неплохо работал. Делаем три колонки в таблице:
itemId, fieldType, fieldValue.
Каждый объект, который нужно поместить в таблицу, имеет свой itemId. Для него мы имеем столько записей, сколько полей у этого объекта, с разными значениями fieldType (описывающими тип поля) и fieldValue (его значение). К примеру, если взять в качестве примера объекта "профиль" с id=3 и полями name, password и email, то в таблице для него получим следующее:

3 name Vasya
3 password qwerty
3 email asd@qwe.ru

UNIQUE KEY = (itemId, fieldType)
Ессно, fieldType лучше делать не текстовыми, а enum или внешним ключом в отдельную таблицу описаний. При этом получаем очень гибкую систему с любым количеством полей и отсутствием пустых избыточных ячеек.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti

Последний раз редактировалось Saruman; 03.05.2005 в 22:45.
Saruman вне форума  
Старый 04.05.2005, 09:08     # 11
AleXXXSoft
Guest
 
Сообщения: n/a

Цитата:
Saruman:
Имхо, хранить кучу данных в одной ячейке, которые могут обновляться независимо - не есть гуд.
Есть еще вариант, который у меня в свое время неплохо работал. Делаем три колонки в таблице:
itemId, fieldType, fieldValue.
Каждый объект, который нужно поместить в таблицу, имеет свой itemId. Для него мы имеем столько записей, сколько полей у этого объекта, с разными значениями fieldType (описывающими тип поля) и fieldValue (его значение). К примеру, если взять в качестве примера объекта "профиль" с id=3 и полями name, password и email, то в таблице для него получим следующее:

3 name Vasya
3 password qwerty
3 email asd@qwe.ru

UNIQUE KEY = (itemId, fieldType)
Ессно, fieldType лучше делать не текстовыми, а enum или внешним ключом в отдельную таблицу описаний. При этом получаем очень гибкую систему с любым количеством полей и отсутствием пустых избыточных ячеек.
по аналогии сделано хранение настроек в SquirellMail - кстати и сам довольно часто использую
 
Старый 04.05.2005, 22:12     # 12
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
уххх, спасибо. буду пробовать.
hempsmoke вне форума  
Старый 05.05.2005, 10:09     # 13
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Это все здорово, но с точки зрения структуры (да и производительности в большинстве случаев), если это можно вписать в конечное количество отдельных таблиц то наверное так и логичнее будет сделать. Почему этот вариант отбросили?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 05.05.2005, 16:29     # 14
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
думал об этом, просто неизвестно сколько этих категорий будет. 20-30?
hempsmoke вне форума  
Старый 05.05.2005, 17:20     # 15
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
hempsmoke:
думал об этом, просто неизвестно сколько этих категорий будет. 20-30?
А, ну раз неизвестно количество заранее, тогда действительно лучший вариант помоему предложенный Sarumanом.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 01:27.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.