Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Если невозможно решить задачу средствами SQL?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, коллеги! Хочу проконсультроваться по организации БД для следующего случая: см. схему. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Итак... С каждым продуктом связаны уникальные ключи его активации. Физически они представляют собой файлы на сервере (поле filename в таблице product_key). Эти ключи покупают юзеры (при этом, ключ ассоциируется с заказом юзера: order_id). Необходимо грамотно разрулить ситуации: 1. Удаление продукта (файлы, связанные с продуктом должны быть удалены, но файлы, связанные с заказом удаляться не должны) 2. Удаление заказа (файлы, связанные с заказом должны быть удалены) Возможные проблемы: Если удалили заказ, то поле order_id будет NULL у product_key. Но этот файл повторно продавать нельзя! Вижу следующий выход: При удалении продукта ставим product_id=NULL. При ассоциировании файла с заказом ставим файлу соотв. order_id +еще один флаг (used=1). При удалении заказа ставим у файла order_id=NULL. Для чистки таблицы product_key по расписанию выполняем запрос: Код: plaintext Надеюсь, изложил задачу достаточно понятно... Собственно, вопросы: Есть ли более элегантные варианты решения поставленной задачи? Можно ли в данном случае обойтись только средствами SQL? (т.е. ограничениями FK и проч.) Спасибо. PS: MySQL 4.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 18:55 |
|
||
|
Если невозможно решить задачу средствами SQL?
|
|||
|---|---|---|---|
|
#18+
данные из таблиц не удалять а ставить признак "недействителен" или как-то так Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 19:43 |
|
||
|
Если невозможно решить задачу средствами SQL?
|
|||
|---|---|---|---|
|
#18+
1024 данные из таблиц не удалять а ставить признак "недействителен" или как-то так так и я о чем! но почему не удалять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 19:59 |
|
||
|
Если невозможно решить задачу средствами SQL?
|
|||
|---|---|---|---|
|
#18+
если данные в дальнейшем нужны то незачем их удалять. Иначе получится что ключ есть но к какому он продукту относится узнать нельзя Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 20:56 |
|
||
|
Если невозможно решить задачу средствами SQL?
|
|||
|---|---|---|---|
|
#18+
если имеются ввиду файлы на ЖД - то их так же предполагается удалять по расписанию утилитой, как я уже говорил: PanchousПри удалении продукта ставим product_id=NULL. При ассоциировании файла с заказом ставим файлу соотв. order_id +еще один флаг (used=1). При удалении заказа ставим у файла order_id=NULL. Для чистки таблицы product_key по расписанию выполняем запрос: Код: plaintext вопрос в том, можно ли решить поставленную задачу средствами SQL (если хранить файлы в БД) что-то неясно из моего описания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 22:39 |
|
||
|
Если невозможно решить задачу средствами SQL?
|
|||
|---|---|---|---|
|
#18+
С какой целью вообще хранятся записи в product_key ? В чем напрмер ее смысл, если продукт не указан (NULL)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 09:41 |
|
||
|
Если невозможно решить задачу средствами SQL?
|
|||
|---|---|---|---|
|
#18+
ModelRС какой целью вообще хранятся записи в product_key ? В чем напрмер ее смысл, если продукт не указан (NULL)? Дело в том, что продукт может быть удален, но product_key его (если принадлежит клиенту) удаляться не должен - тогда у него product_id выставляется в NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 11:29 |
|
||
|
Если невозможно решить задачу средствами SQL?
|
|||
|---|---|---|---|
|
#18+
ну подумайте сами - что значит "продукт удалён"? Обычными словами? Уничтожены все исходники и стёрты все копии у всех пользователей? Нет, просто он не поддерживается больше, но всё что по нему раньше делалось никуда не пропало. Т.е. изменилось состояние продукта (стал "недействительным"). Если вам так хочется что-то удалить из БД то это сделать не трудно. Но тогда получится что ключ есть а на какой продукт он выдан неизвестно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 15:30 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33358657&tid=1545570]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
77ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 271ms |
| total: | 439ms |

| 0 / 0 |
