powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Свободные таблицы? База данных? Триггеры?
7 сообщений из 7, страница 1 из 1
Свободные таблицы? База данных? Триггеры?
    #33482622
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего-то у меня ум за разум зашел ....
Итак : Есть две таблицы - Table1 ("покупатели") и Table2 ("товары, купленные покупателями")
TABLE1
idname
1 Иванов
2 Петров
3 Сидоров

TABLE2
id_1 name
1 Молоко
1 Хлеб
2 Молоко
3 Хлеб
3 Пиво

И если делать "по классике" - то надо создавать базу данных, делать связь между таблицами (id_1 = id) и создавать триггеры (на удаление - это точно, дабы удалив покупателя - удалились и его товары)...

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

А еще я делал такое - есть объект типа "покупатель", в котором среди прочего пестьи метод mDelete, котороый собственно тоже удаляет покупателя и его товары. Типа
loBuyer = createobject('buyer')
loBuyer.id = ...
loBuyer.mDelete()

И вроде как все вариаты работают... Так какой же из них выбрать ???? (и почему ....)
...
Рейтинг: 0 / 0
Свободные таблицы? База данных? Триггеры?
    #33482816
qwertyqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну блин ты даешь!!!

Что лучше ... ???!!! Все хорошо ..., только для соответсвующей ситуации, задачи, проекта, каприза : ...
...
Рейтинг: 0 / 0
Свободные таблицы? База данных? Триггеры?
    #33483097
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы сделал триггер, который не даст удалить покупателя, если есть товары - это для соблюдения целостности нужно восновном для отлова косяков при разработке.
Ну и метод для правильного удаления, который в коде и использовать.

А вообще-то это вопрос из серии "Вкус и цвет - повод для драки"
...
Рейтинг: 0 / 0
Свободные таблицы? База данных? Триггеры?
    #33483113
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Peisov!

Если у тебя есть объект обеспечивающий работу с таблицами - это просто
замечательно! НО тогда ты должен ПОЛНОСТЬЮ запретить всякий доступ к данным
"мимо" твоего объекта - т.е. это весьма сложно и обычно встречает массу
сопротивления ("а я вот хочу напрямую данные получать - а потом ещё и
править"). Если такой проблемы нет, то вполне ожно оствить free таблицы, а
логику (в т.ч. и по обеспечению ссылочной целостности) хранить в этих самых
бизнес-объектах.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Свободные таблицы? База данных? Триггеры?
    #33483896
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо !! Понял ...
Еще вопрос ...
Таблица Table2 (поля - идентификатор покупателя, номер отдела, название товара)

id sect name
-----------------
1 1 Хлеб
1 2 Пиво
2 2 Пиво
3 1 Молоко
3 2 Сигареты

Какой индекс (или индексы) надо "навесить" на эту таблицу для ускорения следующего запроса
SELECT * FROM Table2 WHERE id = ... ORDER BY sect
...
Рейтинг: 0 / 0
Свободные таблицы? База данных? Триггеры?
    #33483901
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по всему, никаких, поскольку Рашмор из where id= и order by ...
состроит нужные индексы сам. Если только не хочешь еще и по покупателям
выборку делать...
...
Рейтинг: 0 / 0
Свободные таблицы? База данных? Триггеры?
    #33483961
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Peisov!

> Какой индекс (или индексы) надо "навесить" на эту таблицу для ускорения
> следующего запроса
> SELECT * FROM Table2 WHERE id = ... ORDER BY sect

Индекс по id - причём проследи чтобы он был без FOR и не UNIQUE, а если это
вдруг символьное поле - то и за соответствием IDXCOLLATE() и текущего
SET("Collate").
Индекс для sect В ЭТОМ запросе не поможет (т.к. сортируется уже конечная
выборка, а не изначальный курсор) - но поскольку это поле похоже на поле
внешнего ключа, и где-то в других местах оно будет использоваться либо как
условие для отбора, либо как условие для объединения (если имеется ещё и
справочник отделов) - то индекс по нему не повредит.
Также непонятно почему не выделены в отдельный справочник собственно
"товары"

2 AndreTM
Ты очень сильно заблуждаешься...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Свободные таблицы? База данных? Триггеры?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]