В настоящее время я работаю над сайтом для клиента, который занимается программными плагинами.Клиент должен иметь возможность загружать Продукты, а для этих продуктов разные Версии, Обновления и Патчи.Например: veProduct v1.1.4 - это Версия 1, Обновление 1 и Патч 4 продукта veProduct.Клиенты должны иметь возможность купить лицензию на версию.Лицензия - это файл, который генерируется для каждого пользователя и должен быть доступен для скачивания.В настоящее время я разрабатываю базу данных для веб-сайта, и я наткнулся на проблему.Как мне обрабатывать различные патчи и версии?
Мой текущий дизайн:
В этом дизайне я создал таблицу Product, которая содержит информацию о самом продукте,нравится имя и описание.Продукта может быть несколько версий, для которых требуются разные лицензии, поэтому я создал еще одну таблицу с именем Version.В этой таблице будет ссылка на скачивание, журнал изменений и цены на эту версию продукта.Также скидка для клиентов, которым принадлежит лицензия более старой версии, но это не важно.После этого я создал таблицу User, чтобы связать пользователя и версию в таблице License.В этой таблице вы также можете найти ссылку на скачивание файла лицензии.
После этого начинается моя проблема.Я создал таблицу Update, например v2.3.Это означает, что его version_id равен 2, а update_id равен 3. Затем я создал таблицу Patch, которая может быть, например, v2.3.1, где version_id равен 2, update_id равен 3 и patch_id равен 1. До сих пор проблем не было, но есть однабольшой недостаток в этом дизайне.Именно тогда я хочу загрузить патч для версии, которая еще не имеет обновлений, например v1.0.1.Это означает, что мне нужно создать запись в таблице update с update_id 0 и без ссылки на скачивание или журнала изменений.Я не хочу создавать запись без какой-либо цели, но быть «родителем» патчей.
[удалено]
Исправление моей проблемы:
Мне трудно придумать решение, поэтому я прошу вашей помощи.
Будет ли хорошей идеей избавиться от полей ссылки на скачивание в таблице версий и обновлений и полагаться на поля в таблице исправлений?Таким образом, я всегда делаю другой патч, даже если я загружаю только более новую версию, или если я загружаю совершенно новый продукт.Просто кажется неправильным иметь таблицу обновлений, только для того, чтобы быть родителем патчей.
Так, кто-нибудь может мне помочь разобраться с этим?Как я должен хранить новые продукты, версии, обновления и исправления в моей базе данных.Где я должен хранить свои ссылки для скачивания?И, наконец, что не менее важно, как я могу сохранить свою версию связанной с клиентом и ссылкой для скачивания лицензии?(Таким образом, каждый пользователь получает свою собственную лицензию для каждой версии продукта, а не для каждого продукта, обновления или исправления)
С уважением,
Scuba Kay
PS: Это действительно не отстойвозможность публиковать изображения, если вы новый пользователь, потому что я бы хотел опубликовать скриншот моего MySQL Workbench вместо основной массы кода.