Проблема при проектировании базы данных - PullRequest
0 голосов
/ 10 октября 2009

Я занимаюсь разработкой базы данных приложений в MS ACCESS. В моей базе данных есть 5 таблиц:

  • Мастер
  • Наличный
  • Проверка
  • Деталь
  • Месяц (отображает месяц в году)

Здесь я сделал Master в качестве родительской записи, а 3 других Cash, Check и Detail являются дочерними для таблицы Master.

Вот поля в основной таблице

   Lt no   Name  Regfee  AssessmentYear  April May June .......... March 

Последние 12 полей - это финансовые месяцы, в которых в качестве значения принимается сумма.

Эти значения должны быть заполнены из чековой / кассовой таблицы через запрос.

 
 cheque
   LTno **month** chqueno date bank **amount** are fields.<br>

В этой контрольной таблице сумма за конкретный месяц должна быть указана в основной таблице за соответствующий месяц. Какой запрос я делаю.

Ожидая ваших ценных предложений.

Ответы [ 2 ]

3 голосов
/ 10 октября 2009

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

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

insert into MasterMonths (LTno, month, value)
select LTno, month, sum(amount)
from cheque
group by LTno, month
0 голосов
/ 11 октября 2009

Я делаю что-то подобное, за исключением того, что я включаю квитанции об оплате кредитной картой и покупки наличными, а также чеки. Это основная бухгалтерия.

По разным причинам я выбрал таблицу под названием «альманах» с одной строкой (записью) для каждой даты. Есть столбцы (поля) для таких вещей, как день недели, месяц года и т. Д. Я заполняю эту таблицу небольшим фрагментом кода, написанным на VB. Даже с датами за десять лет, это всего около 3653 строк в таблице. Затем я использую простые объединения с этой таблицей, чтобы свести данные транзакций к данным, суммированным по месяцам. Я могу подвести итог и другими способами.

Запрос настолько прост, что я просто сделал это с графическим интерфейсом запросов. Однако мое резюме будет иметь в двенадцать раз больше строк, чем ваше, и в каждом ряду будет только один месяц.

Когда я хочу разместить данные в формате вашей основной таблицы, я использую один из двух инструментов: инструмент перекрестных запросов в MS Access или инструмент Сводная таблица в MS Excel. Они оба очень мощные, но инструмент поворота более гибкий. Мне нужно было установить надстройку под названием MS query в Excel, чтобы запрашивать данные базы данных из Excel. Это может быть функцией версии, которую я использую.

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

...