Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.05.2009, 00:14
JcN JcN вне форума
Прохожий
 
Регистрация: 27.04.2009
Сообщения: 35
Репутация: 10
По умолчанию СХема

Вопрос по проектированию БД
Схема конечно примитивная, но всё же)
Вопрос насчёт таблицы "Возврат товара"(Vozvr)
Возврат осуществляется на единицу товара! Указывается
номер накладной возврата, номер накладной Покупки, сам товар, данные покупателя, причина.
В моем варианте необходимый товар будет добавляться через запрос ( с параметр: номер накладной покупки (LinkPokup)
Подскажите альтернативные варианты) или скажите как улучшить имеющийся)
спасибо
Изображения
Тип файла: jpg СХ.jpg (58.0 Кбайт, 18 просмотров)
Ответить с цитированием
  #2  
Старый 05.05.2009, 01:49
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Некоторые размышления по схеме.
1. Поле Tel упоминается дважды в разных таблицах и вполне достойно для вынесения в отдельную таблицу Telephone. Будет общий телефонный справлчник.
2. Поле Foto упоминается дважды и тоже думаю удостоится чести быть вынесеной в отдельную таблицу Photo
3. Поле Adress упоминается дважды и тоже думаю удостоится чести быть вынесеной в отдельную таблицу Address будет единая адресная база. И неплохо бы ее детализировать, хотябы на Город,Улицу,Дом,Квартиру для уменьшения ошибок ввода.
4. Predstavit,Klient как и собственно Sotrud по сути физические лица и тоже достойны для вынесения в отдельную таблицу Human с вашей детализацией F,I,O,DataRog.
5. У клиента может быть несколько документов, потому данные паспорта необходимо тоже вынести в отдельную таблицу Document
6. ... и т.д.

ПС: Несколько не-то что вы просили, но напрашивалось.
А вас не смущает, что у вас в схеме все операции по движению товара никак не документируются?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 05.05.2009 в 01:57.
Ответить с цитированием
  #3  
Старый 05.05.2009, 19:15
JcN JcN вне форума
Прохожий
 
Регистрация: 27.04.2009
Сообщения: 35
Репутация: 10
По умолчанию

спасибо за размышления) исправлюсь)
Схема получилось награмождённая(( но в итоге
вышло примерно так:
Изображения
Тип файла: jpg СХ.jpg (72.3 Кбайт, 20 просмотров)

Последний раз редактировалось JcN, 05.05.2009 в 20:31.
Ответить с цитированием
  #4  
Старый 05.05.2009, 20:45
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Уже интереснее, но:
Что будете делать если к сотруднику, человеку надо привязать более одного телефона, адреса?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 05.05.2009, 21:57
JcN JcN вне форума
Прохожий
 
Регистрация: 27.04.2009
Сообщения: 35
Репутация: 10
По умолчанию

думаю что вот так
к сожалению.... после всех реконструкций, приходится всё в делфи переделвать(( и постоянно сталкивать с ошибками(
Изображения
Тип файла: jpg СХ.jpg (74.6 Кбайт, 13 просмотров)
Ответить с цитированием
  #6  
Старый 06.05.2009, 01:16
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Уже и придраться-то по серьезному вроде не к чему.
Мелочи осстались,
1. В FIO перенести из Sotrud DataRog
2. Связать Dolgn в поставщике с Dognost.
3. Наверное имеет смысл добавить в Foto поле отвечающее за тип фотографии, человек или товар.
Далее я предположу, что:
4. Скидки у вас будут действовать наверное не постоянно, а как-то от даты зависить?
5. Покупка и Поставка вроде-бы должны иметь какие-то номера.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 06.05.2009, 01:53
JcN JcN вне форума
Прохожий
 
Регистрация: 27.04.2009
Сообщения: 35
Репутация: 10
По умолчанию

По понктам:
1. Учту
2. табл Dolgn я использую как подстановочную к сотруднику (например: кассир, админ, менеджер) и не хочется чтобы в этой таблице было что-то лишнее (лишнее из таблицы Postavshik)
3. Уже сделал
4 и 5. Покупка и поставка имеют номера согласно счёткам (IDPostavki и IDPokupka) Что касается скидки: она будет распространятся только на конкретный номер покупки (IDPokupka).
Осталось теперь в делфи всё подправить)) много глупых вопросов возникает)
Ответить с цитированием
  #8  
Старый 06.05.2009, 02:01
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Цитата:
4 и 5. Покупка и поставка имеют номера согласно счёткам (IDPostavki и IDPokupka) Что касается скидки: она будет распространятся только на конкретный номер покупки (IDPokupka).
Осталось теперь в делфи всё подправить)) много глупых вопросов возникает)
Я бы не советовал использовать уникальный ключ записи для хранения Номеров поставки и покупки. Номера покупок/поставок скорее всего с нового года начинаются заново.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 06.05.2009, 02:20
JcN JcN вне форума
Прохожий
 
Регистрация: 27.04.2009
Сообщения: 35
Репутация: 10
По умолчанию

Спасибо за дельный совет)
Вопрос глупый. но тем неменее
Использую запрос на выборку через АДОQuery, добавляю DBGrid, DBNavigator,
соединаю всё...... через DBNavigator я не смогу добавлять и удалять записи?! Когда сделал выборку Select* From Tovar... у меня получилось добавить через DBNavigator новую запись. По идеи чтобы добавлять/удалять/редактировать записи мне надо использовать insert/delete/update)
Ответить с цитированием
  #10  
Старый 06.05.2009, 02:23
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

У вас запрос содержит сколько таблиц?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #11  
Старый 06.05.2009, 02:33
JcN JcN вне форума
Прохожий
 
Регистрация: 27.04.2009
Сообщения: 35
Репутация: 10
По умолчанию

содержит 3 таблицы
Товар, Категория и Производитель
Ответить с цитированием
  #12  
Старый 06.05.2009, 02:36
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

И связана они конечно отношением 1:N. Потому и работает только просмотр т.к. ADO непонятно что и куда добавлять.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #13  
Старый 06.05.2009, 02:44
JcN JcN вне форума
Прохожий
 
Регистрация: 27.04.2009
Сообщения: 35
Репутация: 10
По умолчанию

Я вижу два варианта
1. Просто использовать АДОТейбл с подстановочными полями, для красоты, DBGrid и DBNavigator для управления
2.АДОQuery для просмотра. DBGrid и создать отдельную кнопку на добавление, отдельную на удаление, и соотвественно на редактирование
Ответить с цитированием
  #14  
Старый 06.05.2009, 02:49
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Есть еще такой вариант:
Вы можете обработать событие вставки,удаления,редактирования посвоему.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #15  
Старый 06.05.2009, 12:05
JcN JcN вне форума
Прохожий
 
Регистрация: 27.04.2009
Сообщения: 35
Репутация: 10
По умолчанию

Есть форма.... хочу добавлять, редактировать и удалять записи.
Для добавления вот что написал
insert into Tovar
values ('+DBEdit4.Text','+DBMemo3+','+DBMemo4+','+DBEdit4 .Text')
не хватает категории и производителя DBLookupComboBox1 (подстанов поле из табл. Категория) и DBLookupComboBox2 ((подстанов поле из табл. Производ)) . их также можно добавить в запрос например как '+DBLookupComboBox1+'
и как можно очисить от записей все элементы формы. чтобы туда вписать данные которые в дальнейшем будут обновляться?
(с Table всё просто Table.Insert)

Сейчас приходит на ум вот что сделать: в DBGrid подставить запрос типа

Select IDtovar, Naimenov, Kategoria, Proizvod, Opisanie, Cenareal
From Tovar, Kategoria ,Proizvod
Where LinkProizvod=IdProiz
and LinkKateg=IdKateg

А все остальные элементы на форме связать с Table (Tovar) и тогда без проблем можно будет добавлять новые записи и после обновлять запрос. но тогда не будет отображения в элементах формы записи, которая выбрана в DBGrid
Изображения
Тип файла: jpg 1.jpg (64.4 Кбайт, 8 просмотров)

Последний раз редактировалось JcN, 06.05.2009 в 12:12.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:04.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter