Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разбивать ли 1 таблицу на 2 
:(
    Опции темы
Ronin08
Дата 12.6.2008, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 16.2.2008
Где: г.Москва

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



Доброго времени суток!
Имеется таблица, в ней одно поле должно хранить рисунки.
Причем каждой записи соответствует несколько рисунков!
Как лучше сделать?:
1.Хранить в этом поле ссылку на папку, где хранятся рисунки
2.Создать еще таблицы = количеству записей в первой таблице!
Я пока остановился на 2-м варианте, т.к. в 1-й таблице записей не так уж и много (около 100);

--------------------
Зачем вставать рано или поздно? Надо вставать вовремя
PM MAIL   Вверх
Fortop
Дата 12.6.2008, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Ronin08 @  12.6.2008,  01:53 Найти цитируемый пост)
2.Создать еще таблицы = количеству записей в первой таблице!

Не стоит.

Нормальной практикой для веб - является хранение рисунков отдельно. В базе только ссылки на эти рисунки.

Если так хочется привязать к одной записи несколько рисунков, то создай отдельную 1!!! таблицу где будешь хранить ссылки на рисунки

IDрисунка, IDзаписи, ссылка

соответственно одной и той же IDзаписи может соответствовать любое число рисунков.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Ronin08
Дата 13.6.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 16.2.2008
Где: г.Москва

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



Все таки надо капнуть выше!
Не могу построить правильную структуру БД.
Пишу программу учета рабочего времени. Слежка заключается в следующем:
каждые 10 мин снимаются показания (количество нажатых клавиш и кол-во пройденных пикселей на мониторе, а также делается скриншорт)
Эти данные отсылаются на сервер и там заносятся в БД!
Не знаю как лучше организовать БД, что бы было меньше таблиц и удобно было делать селекты. Основные параметры: ID сотрудника, Фамилия, Интенсивность работы мышкой, Инт-ть раб клавиатурой, скриншорты, дата;

--------------------
Зачем вставать рано или поздно? Надо вставать вовремя
PM MAIL   Вверх
Akina
Дата 13.6.2008, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(Ronin08 @  12.6.2008,  02:53 Найти цитируемый пост)
Имеется таблица, в ней одно поле должно хранить рисунки.
Причем каждой записи соответствует несколько рисунков!

Значит, должна быть таблица, которая устанавливает соответствие (один рисунок - запись в таблице 1).
Цитата(Ronin08 @  13.6.2008,  17:51 Найти цитируемый пост)
как лучше организовать БД, что бы было меньше таблиц и удобно было делать селекты. 

Забудьте слова "меньше таблиц". Их количество должно определяться логикой хранимой информации.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Magnifico
Дата 14.6.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 10
Всего: 17



user posted image


--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
Ronin08
Дата 14.6.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 16.2.2008
Где: г.Москва

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



Magnifico,  спасибо, но видимо надо будет еще создавать для каждого Сотрудника по одной таблице, где будут храниться рисунки, т.к. за смену кол-во нажатых клавиш = одно значение, а скриншотов грубоговоря 6 шт. (кажд 10 мин) * 8 час. (раб смена) = 48 шт
--------------------
Зачем вставать рано или поздно? Надо вставать вовремя
PM MAIL   Вверх
Бонифаций
Дата 14.6.2008, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ух какая у Вас интересная программа!! (А сотрудники то в курсе?)




--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Ronin08
Дата 15.6.2008, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 16.2.2008
Где: г.Москва

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



Пока нет! Это бакалаврская работа smile 
--------------------
Зачем вставать рано или поздно? Надо вставать вовремя
PM MAIL   Вверх
Fortop
Дата 15.6.2008, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ronin08, 
Цитата(Ronin08 @  14.6.2008,  16:12 Найти цитируемый пост)
пасибо, но видимо надо будет еще создавать для каждого Сотрудника по одной таблице, где будут храниться рисунки, т.к. за смену кол-во нажатых клавиш = одно значение, а скриншотов грубоговоря 6 шт.

Зависит от уровня нормализации базы.
Но по одной таблице на КАЖДОГО сотрудника - создавать не надо. Достаточно одной таблицы на всех.

Все свойства сущности можно хранить в одной базе, имеющей такую структуру

ID, OBJID, PROPERTYNAME, VAlUE

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

ID, CHILDID, OBJID, PROPERTYNAME, VALUE

Если OBJID отличается от CHILDID - значит имеет место быть вложенная структура, которую надо извлечь отдельно.

А дальше применяешь рекурсивно ту же самую процедуру и можешь извлечь дерево любой глубины.
Код

function getStructure($OBJID)
    // тут был sql запрос.
    // результаты получили в виде ассоциативного массива / коллекции

    $obj = new stdClass();
    foreach ($list as $definition)
    {
        $name = $definition['propertyname'];
        if ($definition['objid'] != $definition['childid']) {
            $obj->$name = getStructure($definition['childid']);
        } else {
            $obj->$name = $definition['value'];
        }
    }

    return $obj;
}


Это сообщение отредактировал(а) Fortop - 15.6.2008, 10:59


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
kobra
Дата 16.6.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 5
Всего: 9



Цитата(Ronin08 @  14.6.2008,  16:12 Найти цитируемый пост)
Magnifico,  спасибо, но видимо надо будет еще создавать для каждого Сотрудника по одной таблице, где будут храниться рисунки, т.к. за смену кол-во нажатых клавиш = одно значение, а скриншотов грубоговоря 6 шт. (кажд 10 мин) * 8 час. (раб смена) = 48 шт 
структура что надо. все данные будут записыватся каждые 10 минут. а для отчета, если нужно, можно и просумировать.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




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


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

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