Нужна помощь в том, как структурировать мою базу данных (SQL Server) - PullRequest
1 голос
/ 08 февраля 2012

tables

Все, что не помечено как "calc" или "finalvalue", является необработанными данными, которыми я буду манипулировать.

Я наконец знаю достаточно SQL, чтобы иметь возможность создаватьнеобходимые таблицы и выполнить необходимые расчеты.Тем не менее, я просто хотел убедиться, что не существует более простого способа сделать это, то есть задействовать меньшее количество таблиц.

Было бы лучше создать представления вместо фактического изменения таблиц и вставки вычисляемых столбцов?Я на самом деле не забочусь о вычисленных столбцах в Таблице 1 и Таблице 2 после того, как у меня есть окончательные данные в Таблице 3.SQL Server 2008.

Следует также отметить, что я буду получать новые необработанные данные для таблиц 1 и 2 каждый день и планирую добавить эти записи, а затем добавить свои новые окончательные значения в таблицу 3 с полем даты.

1 Ответ

1 голос
/ 08 февраля 2012

Начните здесь: http://support.microsoft.com/kb/283878

Вы никогда не захотите хранить вычисления непосредственно в таблице, вычисления будут выполняться запросами, которые генерируют ваши данные.Таблица 3 на самом деле является результатом простого запроса.

Из того, что у вас есть выше, я бы сказал, что у вас есть по крайней мере следующие три таблицы:

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

Производить (или продукты, если у вас больше фруктов и овощей) - одинстрока на продукт, содержащая информацию о продукте, какой-то идентификатор, который вы генерируете (опять же, целочисленная идентификация является лучшей).

Продажи - одна строка на транзакцию

Здесь все становится немного сложнее.У вас могут быть Sales и SalesItems, где sales имеет уникальную строку для каждой транзакции, а SalesItems содержит по одной строке для каждого продукта, который был приобретен в транзакции, но для действительно простой системы, как вы, похоже, выше, вы можете просто избежатьТаблица продаж, в которой указаны ProductID и CustomerID, а также количество и все, что вы хотите сохранить.

РЕДАКТИРОВАТЬ: Можно с уверенностью сказать, что простая система однажды превратится в сложную систему, поэтому, если бы я проектировал базу данныхВозможно, я бы использовал отдельные таблицы для Sales и SalesItems, чтобы сделать базу данных более гибкой и лучше масштабируемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...