|
|
|
Свободные таблицы? База данных? Триггеры?
|
|||
|---|---|---|---|
|
#18+
Чего-то у меня ум за разум зашел .... Итак : Есть две таблицы - 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() И вроде как все вариаты работают... Так какой же из них выбрать ???? (и почему ....) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 23:40 |
|
||
|
Свободные таблицы? База данных? Триггеры?
|
|||
|---|---|---|---|
|
#18+
Ну блин ты даешь!!! Что лучше ... ???!!! Все хорошо ..., только для соответсвующей ситуации, задачи, проекта, каприза : ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2006, 12:40 |
|
||
|
Свободные таблицы? База данных? Триггеры?
|
|||
|---|---|---|---|
|
#18+
Я бы сделал триггер, который не даст удалить покупателя, если есть товары - это для соблюдения целостности нужно восновном для отлова косяков при разработке. Ну и метод для правильного удаления, который в коде и использовать. А вообще-то это вопрос из серии "Вкус и цвет - повод для драки" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2006, 21:29 |
|
||
|
Свободные таблицы? База данных? Триггеры?
|
|||
|---|---|---|---|
|
#18+
Hi Peisov! Если у тебя есть объект обеспечивающий работу с таблицами - это просто замечательно! НО тогда ты должен ПОЛНОСТЬЮ запретить всякий доступ к данным "мимо" твоего объекта - т.е. это весьма сложно и обычно встречает массу сопротивления ("а я вот хочу напрямую данные получать - а потом ещё и править"). Если такой проблемы нет, то вполне ожно оствить free таблицы, а логику (в т.ч. и по обеспечению ссылочной целостности) хранить в этих самых бизнес-объектах. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2006, 21:47 |
|
||
|
Свободные таблицы? База данных? Триггеры?
|
|||
|---|---|---|---|
|
#18+
Всем спасибо !! Понял ... Еще вопрос ... Таблица Table2 (поля - идентификатор покупателя, номер отдела, название товара) id sect name ----------------- 1 1 Хлеб 1 2 Пиво 2 2 Пиво 3 1 Молоко 3 2 Сигареты Какой индекс (или индексы) надо "навесить" на эту таблицу для ускорения следующего запроса SELECT * FROM Table2 WHERE id = ... ORDER BY sect ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2006, 23:38 |
|
||
|
Свободные таблицы? База данных? Триггеры?
|
|||
|---|---|---|---|
|
#18+
Судя по всему, никаких, поскольку Рашмор из where id= и order by ... состроит нужные индексы сам. Если только не хочешь еще и по покупателям выборку делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2006, 23:51 |
|
||
|
Свободные таблицы? База данных? Триггеры?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 03:31 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33483113&tid=1592611]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 441ms |

| 0 / 0 |
