Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual FoxPro
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.97
Rado
0 / 0 / 0
Регистрация: 09.12.2009
Сообщений: 6
#1

Журнал инвентаризация школы - FoxPro

27.04.2011, 20:53. Просмотров 4219. Ответов 7
Метки нет (Все метки)

Здравствуйте! Необходимо создать бд журнала инвентаризации по школе. Думал сначала написать в основной теме, но так как я буду создавать бд на FoxPro, решил написать здесь. Пересмотрел несколько тем, как делали базы данных складов, но я пока не особо понимаю, как всё это должно выглядеть в моём случае. Может на форуме подобный вопрос уже поднимался. Буду рад любым советам, с чего вообще можно начать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2011, 20:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Журнал инвентаризация школы (FoxPro):

База школы
Всем привет , делаю базу данных школы . Есть таблица Математика (№, ФИО,...

База данных Журнал успеваемости
Здравствуйте. Работаю над курсовой работой, в которой нужно спроектировать...

Создание формы журнал в БД общеобразовательной школы
Необходимо создать форму по типу журнала общеобразовательной школы, то есть...

Введенные данные сгруппировать по возрастанию номера Школы, а в пределах Школы - по возрастанию Класса
Добрый день. Начинается сессия и, как не прискорбно мне это говорить, на...

MSDN журнал. Подписка на бумажный журнал
Как подписаться на бумажный журнал или его в бумажном варианте по РФ не...

Журнал и процедура записи в журнал
есть таблица create table Debug_Log( id number, LogTime date, Message...

7
Redglow
106 / 106 / 1
Регистрация: 06.05.2011
Сообщений: 277
07.05.2011, 10:51 #2
Начинать нужно с проектирования БД. Решить где это все будет храниться и определить тип доступа (локально/по сети, экслюзивный однопользовательский доступ/многопользовательское приложение, навигационная/реляционная БД, движок - Native/FireBird/MySQL/MS SQL/PostgreSQL/Oracle и т.д.).
Определить список полей и индексов (№ помещения, этаж, наименование оборудования, конфигурация, инвентарный номер, ФИО ответственного и т.д.); определить тип данных для каждого поля; спроектировать и нормализовать структуру.
О нормализации в инете полно статей. Первые наугад выдернутые из поиска ссылки:
http://ru.wikipedia.org/wiki/Нормальная_форма
http://www.wwwmaster.ru/article.php?nart=21
Затем создаем БД, рисуем формы, навешиваем на объекты, контролы и события функционал, отлаживает и тестируем, пишем файл справки, внедряем.
0
Rado
0 / 0 / 0
Регистрация: 09.12.2009
Сообщений: 6
20.05.2011, 18:09  [ТС] #3
Создал таблицы (прикрепил к сообщению), добавление новых вещей у меня будет осуществляться через таблицу "ведомость прихода", а оттуда будет копироваться в таблицы кабинетов по трём полям: "номер кабинета", "номер записи" и "инвентаризационный номер" (вообще у меня во всех таблицах первичный ключ будет "инв номер"). Планирую создать форму, чтобы по нажатию кнопки открывалось окно, в котором я вводил бы всю информацию о предмете (объекте) и добавлял бы в "ведомость прихода". Как это можно сделать и как сделать так, чтобы сразу после добавления в "ведомость прихода" у меня в какую-нибудь из таблиц кабинетов автоматически добавлялись три поля, о которых я писал выше? Надо как-то их сразу копировать, но я без понятия, как это сделать
Возможно, поле "номер записи" даже можно вообще убрать и мне хватит полей "номер каб" и "инв номер".
0
Вложения
Тип файла: rar БД Гимназия.rar (9.5 Кб, 284 просмотров)
Redglow
106 / 106 / 1
Регистрация: 06.05.2011
Сообщений: 277
23.05.2011, 09:57 #4
Это учебная (лабораторная, контрольная, курсовик) или реальное приложение в реальной школе?
Если первое - на троечку, если второе - никуда не годится.
Во-первых, наименования таблиц и полей настоятельно рекомендую называть буквами латинского алфавита - это избавит от множества проблем в будущем.
2. Инвентарный номер в качестве уникального ключа - это конечно хорошо, но что делать если ТМЦ списано, карточка закрыта, а потом под этим же номером открывается новая карточка на новую ТМЦ? Что делать если бухгалтер тупо ошибся и открыл вторую карточку с таким же номером? Я такое уже наблюдал на практике. Нечего изобретать велосипед - для первичных ключей существует автоинкрементное поле, а инвентарный номер пусть будет как отдельное поле.
3. Несмотря на то, что сейчас ключ по инвентарному номеру, по нему есть индекс только в одной таблице. Зато зачем-то есть индекс по полю "директор" в таблице "гимназия" (он каждый день меняется?) и "номер_кабинета" в "лицах...".
4. Теперь по структуре. Что за нахрен "а оттуда будет копироваться в таблицы кабинетов"?! Зачем? Вы о нормализации внимательно читали? Не занимайтесь ерундой, а создайте справочник кабинетов в виде "код", "номер", "описание". Кстати, почему номер кабинета целочисленный? В моей школе сплошь и рядом встречалась нумерация кабинетов типа №9, №9а и т.д. Для поля "наименование" 25 символов очень мало даже для ооочень краткого наименования. Единицы измерения вынести в отдельный справочник. Целочисленного "количество" - это конечно хорошо, но как вы собираетесь хранить полтора килограмма гвоздей и 57,8 литров краски?
5. В приведенной структуре не учтена древовидность. Объясняю: был ПК в сборе под инв.номером 1. В нем сгорела видеокарта. В ближайшей конторе она покупается и ставится на учет под новым инвентарным номером, а не вписывается в предыдущую карточку. Что собираетесь делать?
И т.д. и т.п. Замечаний еще очень много, поэтому данная структура нежизнеспособна, и даже если ее сейчас внедрить - это будет большой головняк на голову того, кто будет ее впоследствии сопровождать.
Без обид.
0
Rado
0 / 0 / 0
Регистрация: 09.12.2009
Сообщений: 6
23.05.2011, 16:38  [ТС] #5
С критикой согласен, бд находится еще в разработке.
Redglow, по Вашему 2-му пункту: что за автоинкрементное поле, я об этом ни разу не слышал )
По 3-му: индекс по инв номеру должен быть в каждой таблице кабинета, я его просто не добавил; в таблице "гимназия", я так понял, можно вообще без первичных ключей и каких-либо индексов.
Вообще, у Вас нету примера бд, в которой соблюдена та же древовидная структура и нету прочих ошибок и недочётов, какие есть у меня? )
0
Redglow
106 / 106 / 1
Регистрация: 06.05.2011
Сообщений: 277
23.05.2011, 17:19 #6
А как насчет почитать хелп? Разжевывать простые и очевидные вещи как-то не комильфо...
Автоинкрементное поле:
Для установки Автоинкрементной характеристики Поля в Таблице:
Откройте Таблицу в соответствующем Дизайнере (Table Designer).

В соответствующей закладке Fields, выберите требуемое Поле.

В комбинированном Списке Type, установите тип Поля: Integer (AutoInc).

В соответствующей области Дизайнера AutoIncrement, введите начальное значение Автоинкрементного Поля Next Value, а также определите величину Приращения в области Step.

После выполнения всех действий нажмите кнопку OK.
Если Вы хотите, чтобы я сделал за Вас Вашу работу, мне придется и денег за Вас получить.
Хранение древовидных структур достигается самыми различными способами в зависимости от поставленных задач и предпочтений конкретного программиста. Самый простой способ - ввести еще одно поле Parent (родитель), в котором хранить код родительского объекта. Т.е. примерно так:
карточка 1, ПК инв.№12345:
Код
Id Name         Inv_Num  Parent
----------------------------
1  ПК           12345    0
2  Видеокарта   6789     1
Можно добавить вместо (или вдобавок) поле Child (дочерняя запись). Можно вынести уровни вложенности в отдельную таблицу и еще много "можно...".
0
Rado
0 / 0 / 0
Регистрация: 09.12.2009
Сообщений: 6
23.05.2011, 17:32  [ТС] #7
Хорошо, постараюсь пока сам добиться результатов. Спасибо
0
Redglow
106 / 106 / 1
Регистрация: 06.05.2011
Сообщений: 277
23.05.2011, 17:45 #8
Не с того Вы начали проектирование.
Мой Вам совет: возьмите бланк реальной карточки инвентаризации, посмотрите какие там есть поля и от этого пляшите. Нарисуйте все таблицы на бумаге. Критически оцените и еще раз перерисуйте с учетом выявленных ошибок и принципов нормализации. Я бы сделал 2 основных таблицы: карточка и табличная часть к ней с содержимым объекта, потому что ПК состоит из комплектующих, а мебельный гарнитур может состоять из стола, тумбы, шкафа и кресла. И никаких ведомостей в таблицах - это чистой воды отчет, который должен быть отсчитан и выведен на печать на основе учетных карточек. На открытие-закрытие нет смысла вести 2 дублирующих друг-друга таблицы, достаточно в заголовке карточки указать дату открытия и дату закрытия. Если важно хранить историю перемещений ТМЦ по кабинетам - нужно ввести еще одну таблицу: код карточки, дата перемещения, откуда, куда. Ну и справочники: краткие названия ТМЦ, единицы измерения, помещения, должности и т.д.
0
23.05.2011, 17:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 17:45
Привет! Вот еще темы с решениями:

Инвентаризация
В инвентарном файле содержатся сведения о том, изделия каких видов продукции и...

Инвентаризация
Делаем инвентаризацию по посуде. Минусом идет одна позиция, которой нету......

Инвентаризация в 1С
Всем привет. Подскажите пожалуйста возможно ли настроить акт инвентаризации...

Инвентаризация ПО
Добрый вечер пишу курсовую по теме "инвентаризация по." Нужно написать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru