Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Структура БД. Одна таблица или несколько... 
:(
    Опции темы
Render
Дата 15.10.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 12.5.2005

Репутация: нет
Всего: 3



На днях встал вопрос о проектировании одной таблицы БД...

в форме это выглядит так...

Инфа о человеке...
пара text полей...
Другая информация:
несколько checkbox, причем каждый чек имеет под чеки...

так вот в чем проблема...
как это хранить в БД, получатся некая таблица в поле которой это будет выглядеть не иначе как 1,0,0,1,0....ну или что-то в этом роде....не хотелось бы с этим возиться, может кто-то что-то подобное у себя проворачивал в более оптимальном варианте...

Приходило в голову использовать XML для хранения такой инфы, но в связи с тем что этих файлов будет очень много, сразу отпадает...

Интересует вариант с таблицами БД...
PM   Вверх
Vaulter
Дата 15.10.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



тут есть два варинта:
1. все профайлы хранятся в одной таблице, максимально охватывающей все возможные "подчеки" (аттрибуты)
2. есть несколько таблиц для одной группы, для другой и т.д. но тогда выборка может стать геммороем smile


--------------------
PM MAIL WWW ICQ   Вверх
skyboy
Дата 15.10.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



почему только два? вариантов всегда не менее 3. 
вот только информации мало - не понятно, что за "подчеки", аттрибуты и т.д.
PM MAIL   Вверх
Render
Дата 15.10.2006, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 12.5.2005

Репутация: нет
Всего: 3



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

Задумался совсем, как это проще реализовать...
либо держать в поле только те услуги которые выбраны в текстовом таком формате через запятую, ну и при выводе всё это дело разгребать...
PM   Вверх
Vaulter
Дата 15.10.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



skyboy, ну -1 (как самый плохой) итого 2 smile

Render, тут проблема специфичная и информации все равно мало.



--------------------
PM MAIL WWW ICQ   Вверх
Render
Дата 15.10.2006, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 12.5.2005

Репутация: нет
Всего: 3



Сейчас попробую описать, подробнее...

Вообщем у меня есть форма:

Код

<p><strong>Форма заказа.</strong></p>
<form action="" method="post" enctype="multipart/form-data">
    Называние проекта: <input name="project" type="text" size="20" maxlength="30" /><br />
    Координатор проекта: <input name="coordinator" type="text" size="20" maxlength="30" /><br />
    E-mail: <input name="email" type="text" id="email" size="20" maxlength="30" /><br />
Виды услуг:<br />
<input name="site" type="checkbox" onClick="document.getElementById('order[job]').style.display = this.checked ? 'block' : 'none';" />Работа1<br />
<div id="order[job]" style="display: none;">
<select name="menu1">
    <option>Категория работ</option>
    <option>Категория работ2</option>
    <option>Категория работ3</option>
    <option>Категория работ4</option>
</select><br />
Цель работ:<br />
<input type="checkbox" name="target1" value="checkbox" />Цель1<br />
<input type="checkbox" name="target2" value="checkbox" />Цель2<br />
<input type="checkbox" name="target3" value="checkbox" />Цель3<br />
Дополнения к работе:<br />
<textarea name="textarea" cols="50" rows="8"></textarea><br />
Прикрепленные файлы:<br />
<input type="file" name="file" /><br />
<input type="file" name="file" />
</div>
<input name="site" type="checkbox" onClick="document.getElementById('order[job2]').style.display = this.checked ? 'block' : 'none';" />Работа2<br />
<div id="order[job2]" style="display: none;">
<select name="menu2">
    <option>Категория работ</option>
    <option>Категория работ2</option>
    <option>Категория работ3</option>
    <option>Категория работ4</option>
</select><br />
Цель работ:<br />
<input type="checkbox" name="target1" value="checkbox" />Цель1<br />
<input type="checkbox" name="target2" value="checkbox" />Цель2<br />
<input type="checkbox" name="target3" value="checkbox" />Цель3<br />
Дополнения к работе:<br />
<textarea name="textarea" cols="50" rows="8"></textarea><br />
Прикрепленные файлы:<br />
<input type="file" name="file" /><br />
<input type="file" name="file" />
</div>
<input type="submit" value="Заказать!" />
</form>


Что-то в этом роде....
теперь инфу о заказе надо писать в БД, вот только как там держать чеки и селекты...насчёт файлов и доп. инфы всё ясно отдельное поле, а вот как быть с этими вопрос...либо чеки писать прямо по называниям, то есть в поле это будет сидеть в виде текста: target1,target3...отдельное поле и для селектов можно....только никак вообразить вставку таких данных немогу...
PM   Вверх
skyboy
Дата 15.10.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Render, ты можешь не форму давать, а выдать сжатое ТЗ: какие объекты, какие связи(я не про БД, а про информацияонные объекты, как самодостаточные информационные структуры)?
PM MAIL   Вверх
Vaulter
Дата 15.10.2006, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



Render, ну это просто
делается по хорошему 3я таблицами:
1. люди. ключ user_id.
2. работы. поля соответственно:
work_id, user_id (чья работа), cat_id, target1 (tinyint), target2, target3 (при условии что их будет макс. 3! если нет, надо дальше нормировать), comment..
3. файлы. 
file_id, work_id, filename, file, mime
например.


--------------------
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 15.10.2006, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(Render @  15.10.2006,  15:06 Найти цитируемый пост)
несколько checkbox, причем каждый чек имеет под чеки...

Если кол-во статично, то используй множество или сам реализовывай список параметров через строку с разделителем. При этом порядок чекбоксов тоже статичный и определен программно.
В противном случае надо детально смотреть как устроены чекбоксы.
PM ICQ   Вверх
Render
Дата 15.10.2006, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 12.5.2005

Репутация: нет
Всего: 3



Не совсем понял что нужно описать чтобы подсобить ответу...  smile 
Описать данные входящие в БД...
Связь между данными...в форме вроде бы всё и так описано какая у них связь...

Пардон если я что-то не правильно понял...

Vaulter ну это как раз то от чего я хотел уйдти, я про таргеты в int. Если предположим их со временем будет уже не 3...
То есть самый лучший вариант это хранить там, имя поля(услуги) хотя бы...чтобы потом всё это дело вывести...проблема сейчас у меня уже в том как это дело в БД писать...
С трудом представляю себе этот запрос, ну то есть вдруг чек не вкл...это правда уже тема в MySQL...
но всё же...

Это сообщение отредактировал(а) Render - 15.10.2006, 19:20
PM   Вверх
Vaulter
Дата 15.10.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



Render, если не 3 - то 4е таблицы.
ты хотел уйти от нормальной формы хранения данных?
зачем?
запросы получаются тривиальные.
тривиальные с точки зрения написания и с точки зрения субд.


--------------------
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0889 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.