Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 210

Оптимизация количества таблиц

28.04.2010, 11:51. Показов 1542. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть ли какие-либо рекомендации по кол-ву таблиц базе данных.
что эффективнее - большее число таблиц или наоборот - минимум таблиц с кучей информации?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2010, 11:51
Ответы с готовыми решениями:

Оптимизация сравнения таблиц
Добрый день! Прошу помощи и советов. Имеется несколько таблиц с одинаковыми столбцами. Сравнение проводится по ключевому полю...

Оптимизация соединения таблиц...
Привет) Гуру Оракла, помогите пожалуйта.... оптимизируйте под Oracle10g вот этот кусок кода (SELECT C.Joinid,MAX(C.STAMP) AS Data ...

Оптимизация запросов или их количества
Ситуация такая : Есть таблицы refers и games Есть сайт с лотерей типа угадай число и результат игры каждого пользователя идет в базу...

10
1 / 1 / 1
Регистрация: 02.04.2009
Сообщений: 135
28.04.2010, 12:11
Рекомендую почитать учебник по теории реляционных БД. Ваш вопрос решится сам собой.

А на Ваш вопрос можно ответить так:
В БД должно быть столько таблиц, сколько Вам необходимо(разумеется большинство из должны быть в 3НФ)

P.S. Если у кого-то есть иное мнение - присоединяйтесь - обсудим...
0
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 210
28.04.2010, 13:13  [ТС]
спасибо,

3НФ ?

......
необходимо мне конечно минимум - путатся меньше буду...
просто возникла мысль, что при работе только с частью данных из одной таблицы, оставшаяся часть безцельно 'перелистывается'...
или я не прав?
0
1 / 1 / 1
Регистрация: 02.04.2009
Сообщений: 135
28.04.2010, 18:45
>спасибо,
>
>3НФ ?
>

3НФ - 3-я нормальная форма(также она носит название формы Бойса-Кодда)

>просто возникла мысль, что при работе только с частью данных из >одной таблицы, оставшаяся часть безцельно 'перелистывается'...
>или я не прав?

не совсем... При работе только с некоторыми полями таблица полученными с помощью запроса остальные поля ИМХО не будут 'перелистываться'. У кого есть иное видение этого вопроса - пишите в тему - подискутируем.

Удачи.
0
Крысоед
04.05.2010, 11:59
моя база состоит из 23 таблиц, хотя можно было бы обойтись и одной. Но при построении сложных запросов (с большим количеством подзапросов)у меня не возникает необходимости создавать промежуточные таблицы, соответственно я почти не использую запросы на создание таблиц, удаление и добавление записей, обходясь практически одними селектами.
Вывод: лучше больше таблиц.
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 210
04.05.2010, 15:22  [ТС]
а если бы была одна таблица можно было бы обойтись одним только фильтром...
и из него делать временную таблицу.
нет?
0
1 / 1 / 1
Регистрация: 05.01.2010
Сообщений: 235
05.05.2010, 02:30
По поводу 3НФ - нормальная форма Бойса-Кодда не то же самое (она строже 3-й, точнее, к сожалению, сейчас не припомню). А сколько нужно таблиц - это зависит от конкретной задачи, но скорее всего обойтись одной - плохая идея. Если бы Вы точнее описали задачу на вопрос можно было бы ответить более однозначно...
0
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 210
05.05.2010, 09:48  [ТС]
- поставщики
- товар (все коды - внутренний, EAN, цены, поставщик на данный момент)
- продажи по дням
- приход от поставщика по месяцам
- возврат поставщику по месяцам
- список акций, акционных товаров, размер дискаунта

основаная проблема в том, что продажи товаров не привязаны к поставщику - т.е. пришел товар от одного поставщика и на половину распродался, позже пришёл тот же товар но уже от нового поставщика и теперь он уже смешался со старой партией, как говорит мой колега - продажи обезличены...
была идея держать понедельную смену базы поставщиков на каждый товар... но это будет просто убийство... в итоге все отчеты по продажам с поставщиками не имеют связки соответсвующей реальности.
Касаемо кол-ва таблиц на данный момент их столько, сколько перечисленно пунтков выше...
0
1 / 1 / 1
Регистрация: 05.01.2010
Сообщений: 235
05.05.2010, 19:13
Тут я бы очень советовал одной таблицы не делать, т.к. хоть товары с поставщиками и не связаны, но связи между другими таблицами вполне однозначны. А одна таблица будет ненормализованной, что влечёт за собой избыточность данных, аномалии вставки, удаления и обновления - пренеприятнейшие штуки, о которых можно узнать из любой литературы о реляционных базах данных
0
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 9
05.05.2010, 23:26
Прочитал только что из: 'http://top-business.hut.ru/mysql-help/2.html'
по поводу нормализации.
Из своево опыта:
создавал и вел 'базу производства' на малом предприятии.
Пришел к некоторым принципам формирования таблиц.
Принцип А: Таблица может быть одного из двух типов:
1) без полей связи (основная табл.)
2) с полями связи (таблица связи)
Принцип B: Основная таблица должна иметь как минимум 2 поля:
1) поле-идентификатор (ID,код), лучше числовое
2) поле-имя (имя)- текстовое поле, объясняющее, что за объект скрывается под ID, кодом
3)
... поля-свойства объекта, которые неразрывно связанны с объектом
n)

Таблица связи обязательно содержит как минимум 2 поля, в т.числе 1 поле связи с другой таблицей.
Я абсолютно не разбираюсь в торговле, но в вашем случае сделап бы такие таблицы (в <>скобках необязательные поля:
- 'поставщики' (КодПоставщика-ID, Поставщик-текст, <АдресПоставщика>, <ТелефонПоставщика>, ...
- 'товар' (КодТовара-ID, Товар-текст, <Свойство1Товара>, <Свойство2Товара>, ...
-'поставки' (КодПоставки-ID, <ИмяПоставки - например: 'Соки', 'Мороженое'>, КодТовара, КодПоставщика, Объем поставки(кол-во), ЦенаЕдцыОбъема, <ЦенаПартии-вычисляемое поле>, ДатаПоставки, Остаток-программно связать с изменениями в табл 'продажи по дням'
- 'продажи по дням' (КодПоставки, ДатаПродажи, Продано :кол-во, ЦенаПродажиЗаЕдцуТовара, СуммаПродажи-вычисляемое)
- приход от поставщика по месяцам - это может быть не таблица, а отчет (программно)-выборка за период по товарам, поставщику и т.д из табл.'поставки'
- 'возврат поставщику по месяцам' - аналогично предыдущей табл
- 'список акций, акционных товаров, размер дискаунта' - в этом я не разбираюсь, но наверное, как-то связать с табл.'продажи по дням' или включить в нее.
0
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 9
05.05.2010, 23:55
продолжение:
Извиняюсь, в табл 'продажи по дням' такие поля (КодПродажи, КодТовара, ДатаПродажи, Продано:кол-во, ЦенаПродажиЗаЕдцуТовара, СуммаПродажи-вычисляемое). После заполнения записи или группы записей в этой таблице (по нажатию кнопки 'Ок' в форме 'Продажи' с этой таблицей)-программно вычислять 'Остаток' для табл. 'Поставки' по каждому товару с более ранней датой закупки, пока он (остаток) больше нуля.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2010, 23:55
Помогаю со студенческими работами здесь

Управление стилями для таблиц, оптимизация
Можно ли при помощи CSS или другим способом не вставляющим непосредственно код в теги ячеек, задать colspan для всех TD кроме тех в которых...

Оптимизация большого количества NPC на карте
Пытаюсь сделать Терарию на C#(без Unity и т.д).В этой игре есть довольно большая карта, на которой одновременно размещается множество...

Оптимизация обработки большого количества объектов
Доброго времени суток, господа. У меня есть графическая программа на основе SFML. В программе обновляются около 12-13 тысяч объектов в...

Типы оптимизация: черная оптимизация, серая оптимизация и белая оптимизация
Много много лет назад, на заре становления профессии &quot;оптимизатора&quot; в какой то умной книжке был создан миф. Это миф о цветовой индефикации...

Сложный запрос из нескольких таблиц. Необходима оптимизация
Всем доброго времени суток! Проблема вот какая. Есть сложный запрос, осуществляемый из нескольких таблиц, время на выполнение которого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru