Я разрабатываю довольно сложную базу данных и борюсь с выборами по одному аспекту. Пользователи могут загружать видео, фотографии и истории, некоторые бесплатные, некоторые другие участники будут платить. Фотографии должны быть сгруппированы в наборы с именем.сложный выбор дизайна таблицы mysql
Я уже решил добавить в колонку базы данных членов, представляющую «количество бесплатных наборов фотографий», «количество платных фото-наборов»; то же самое для видео и рассказов.
Решение, с которым я борюсь, заключается в хранении заданных имен, номеров в каждом наборе и типе набора.
Пожалуйста, имейте в виду, что если множество фотографий имеет 6 в этом, я буду должен показать соответствующий 6. То же самое для видео и т.д.
Файлы будут сохранены с закодированными названиями - фото, userid 2, set 3, картинка 4 будет сохранена как FP020304.jpg (только пример), и именно так я буду знать, какие из них нужно вспомнить.
Выбор 1: Один дополнительный стол для каждого члена со следующими столбцами (представительном):
пример записи являются:
SET-ID | SetType | SetName | NumberInSet
1 | freephotos | holiday | 10
2 | paidphotos | birthday | 6
Выбор 2: То же самое, но только одну таблицу для всех члены только с «MemberID», добавленным в столбцы
Выбор 3: одна таблица для каждого типа, для каждого участника, например, одна таблица для бесплатных фотографий, другая для платных и т. д.
Выбор 4: то же, что и 3, но с добавлением столбца идентификатора участника. (Только 6 таблиц)
Мышление до сих пор: Выбор 3 кажется проще всего делать запросы, но я не уверен, что мне нравится идея добавления 6 таблиц для каждого нового участника. Выбор 4 кажется наиболее логичным, так как будет только 6 таблиц, но извлечение соответствующей информации будет более сложным. Выбора 1 & 2 результата в менее новых таблицах на одного члена, но и, кажется хитрым получение результаты
Я не неблагоприятный для хитрых решений, однако я просто не могу решить, что будет лучше для этого сценария - на самом деле, я уверен, другие способы, о которых я еще не думал.
Предложения были бы весьма признательны.
(нб - первое сообщение - я надеюсь, что это выходит разборчиво)
Благодарим вас за ответ. Если я правильно понял, перейдите на выбор 2, но без совокупного значения. Мне любопытно, однако, я знаю, что мы можем подсчитывать значения, но, будучи с моим сайтом, эти наборы никогда не будут изменены после первоначальной настройки, есть ли существенный недостаток для их хранения? (не подозревая о ленивом программировании ... lol) – Mark
Да, я думаю, это выбор 2;) Если они никогда не меняются ... Я не думаю, что есть какой-либо прямой недостаток (за пределами применения «без изменений» к состоянию счета ... это будет более сложно вернуться позже). Недостатком ленивого кодирования является через 3 года, когда требования меняются, а не сейчас. Также не так сложно написать сценарий, который будет обновлять все поля счетчика с реальным счетом из таблиц, если вы подозреваете, что они больше не точны в будущем. Как правило, сотни способов моделирования вашей БД, это выбор того, какие варианты наилучшим образом соответствуют требованиям. – Twelfth