Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2010, 19:53   #1
BloodWizard
Пользователь
 
Аватар для BloodWizard
 
Регистрация: 23.10.2008
Сообщений: 46
По умолчанию Вычисляемое поле

Вот допустим у меня есть несколько таблиц:
Овощи
Фрукты
Моющие средства
Типы товаров
Можно ли сделать так чтобы в таблици типы товаров в поле "Количество видов товара" вы вычислялось количество полей например в таблице "Овощи"
BloodWizard вне форума Ответить с цитированием
Старый 07.08.2010, 21:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Именно количество ПОЛЕЙ?!
Это обычно можно получить из системных таблиц с метаданными (зависит от используемой СУБД).

Но я Вам истино говорю - подобный вопрос говорит о том, что, скорее всего, БД спроектирована НЕВЕРНО!
Зачем Вам знать, сколько полей в таблице?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.08.2010, 22:09   #3
BloodWizard
Пользователь
 
Аватар для BloodWizard
 
Регистрация: 23.10.2008
Сообщений: 46
По умолчанию

Ну вот например темы на сотовые телефоны... есть таблица с категориями тем(знаменитости, компьютеры, авто-мото, и т.д.) и есть таблицы - категории в которых темы находятся, одна таблица одна категория... вот чтобы выводить на сайт в какой категории сколько тем лучше чтобы в таблице с категориями сразу хранилось количество тем определённой категории...
BloodWizard вне форума Ответить с цитированием
Старый 07.08.2010, 22:47   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

практически ничего не понял, извините.. (хотите обсудить - распишите подробнее, поговорим)

но, имхо, суть вашего сообщения я уловил.

Не буду утверждать 100%, конечно, т.к. в реальной практике случаи разные бывают, но:
Если при добавлении ещё одной темы/категории/вида_товара (неважно чего) приходится изменять структуру (или добавлять новые таблицы), то, скорее всего, структура БД спроектирована НЕВЕРНО!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.08.2010, 23:08   #5
BloodWizard
Пользователь
 
Аватар для BloodWizard
 
Регистрация: 23.10.2008
Сообщений: 46
По умолчанию

Задача у меня такая нужно сделать базу данных тем на сотовый телефон... Я хотел сделать так, чтобы при выводе всех категорий тем (Авто-мото, компьютеры, природа, девушки, мужчины и т.д.) у меня на странице выводилось количество тем в каждой категории... Я работаю в MSSQL 2005 поначалу я думал сделать так: скрипт читает таблицу и считает сколько тем в каждой категории(скрипт тяжеловат и при работе может порядочно загрузить сервак)... Потом подумал сделать отдельную таблицу в которой будут записаны все категории с именем "Categories" ( структура примерно такая: ID, Name, Count_of_themes)...

Хотя есть вариант сделать так: при добавлении темы в запись с данными об этой категории в поле "Count_of_themes" прибавлялась единица, ну а при удалении отнималась... но это если добовлять и удалаять из PHP скрипта... Ну а если я добавил вручную то так не пойдёт... вот я и подумал сделать вычисляемое поле как вариант... но можно ещё сделать отдельный скрипт который при запуске щитает сколько тем в каждой категории и записывает их в таблицу "Categories" ,поле "Count_of_themes" результаты подсчёта...

Последний раз редактировалось BloodWizard; 07.08.2010 в 23:11.
BloodWizard вне форума Ответить с цитированием
Старый 07.08.2010, 23:41   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Храните все темы в одной таблице. Добавьте ПОЛЕ - категория (это ID_CAT - foreign key - ссылка на таблицу THEME_CATEGORY )
тогда узнать, сколько тем по каждой категори можно простейшим запросом, примерно такого вида:
Код:
SELECT ID_CAT, COUNT(*) from THEME
GROUP BY ID_CAT
NB. Подобные запросы очень эффективны. Поэтому не стоит заморачиваться с вычисляемым полем, а высчитывать при каждом обращении.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.08.2010, 12:12   #7
BloodWizard
Пользователь
 
Аватар для BloodWizard
 
Регистрация: 23.10.2008
Сообщений: 46
По умолчанию

Примного благодарен... всё работает как надо и не сильно грузит сервак...
BloodWizard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисляемое поле в таблице ACCESS, создать вычисляемое поля в таблице аксес artlayers Microsoft Office Access 2 04.11.2009 19:29
Вычисляемое поле goodwinrock БД в Delphi 5 30.01.2009 15:27
Вычисляемое поле в RaveReport ГОСЕАН БД в Delphi 1 15.05.2008 07:59
Delphi 7 вычисляемое поле Riddick Помощь студентам 3 27.12.2007 06:55
Вычисляемое поле в базе VVVadim БД в Delphi 3 27.09.2007 08:20