|
#1
|
|||
|
|||
СХема
Вопрос по проектированию БД
Схема конечно примитивная, но всё же) Вопрос насчёт таблицы "Возврат товара"(Vozvr) Возврат осуществляется на единицу товара! Указывается номер накладной возврата, номер накладной Покупки, сам товар, данные покупателя, причина. В моем варианте необходимый товар будет добавляться через запрос ( с параметр: номер накладной покупки (LinkPokup) Подскажите альтернативные варианты) или скажите как улучшить имеющийся) спасибо |
#2
|
||||
|
||||
Некоторые размышления по схеме.
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
|
|||
|
|||
спасибо за размышления) исправлюсь)
Схема получилось награмождённая(( но в итоге вышло примерно так: Последний раз редактировалось JcN, 05.05.2009 в 20:31. |
#4
|
||||
|
||||
Уже интереснее, но:
Что будете делать если к сотруднику, человеку надо привязать более одного телефона, адреса? Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
думаю что вот так
к сожалению.... после всех реконструкций, приходится всё в делфи переделвать(( и постоянно сталкивать с ошибками( |
#6
|
||||
|
||||
Уже и придраться-то по серьезному вроде не к чему.
Мелочи осстались, 1. В FIO перенести из Sotrud DataRog 2. Связать Dolgn в поставщике с Dognost. 3. Наверное имеет смысл добавить в Foto поле отвечающее за тип фотографии, человек или товар. Далее я предположу, что: 4. Скидки у вас будут действовать наверное не постоянно, а как-то от даты зависить? 5. Покупка и Поставка вроде-бы должны иметь какие-то номера. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
По понктам:
1. Учту 2. табл Dolgn я использую как подстановочную к сотруднику (например: кассир, админ, менеджер) и не хочется чтобы в этой таблице было что-то лишнее (лишнее из таблицы Postavshik) 3. Уже сделал 4 и 5. Покупка и поставка имеют номера согласно счёткам (IDPostavki и IDPokupka) Что касается скидки: она будет распространятся только на конкретный номер покупки (IDPokupka). Осталось теперь в делфи всё подправить)) много глупых вопросов возникает) |
#8
|
||||
|
||||
Цитата:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
Спасибо за дельный совет)
Вопрос глупый. но тем неменее Использую запрос на выборку через АДОQuery, добавляю DBGrid, DBNavigator, соединаю всё...... через DBNavigator я не смогу добавлять и удалять записи?! Когда сделал выборку Select* From Tovar... у меня получилось добавить через DBNavigator новую запись. По идеи чтобы добавлять/удалять/редактировать записи мне надо использовать insert/delete/update) |
#10
|
||||
|
||||
У вас запрос содержит сколько таблиц?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#11
|
|||
|
|||
содержит 3 таблицы
Товар, Категория и Производитель |
#12
|
||||
|
||||
И связана они конечно отношением 1:N. Потому и работает только просмотр т.к. ADO непонятно что и куда добавлять.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#13
|
|||
|
|||
Я вижу два варианта
1. Просто использовать АДОТейбл с подстановочными полями, для красоты, DBGrid и DBNavigator для управления 2.АДОQuery для просмотра. DBGrid и создать отдельную кнопку на добавление, отдельную на удаление, и соотвественно на редактирование |
#14
|
||||
|
||||
Есть еще такой вариант:
Вы можете обработать событие вставки,удаления,редактирования посвоему. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#15
|
|||
|
|||
Есть форма.... хочу добавлять, редактировать и удалять записи.
Для добавления вот что написал 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 Последний раз редактировалось JcN, 06.05.2009 в 12:12. |