Как я уже говорил, я пытаюсь создать базу данных, в которой хранятся данные, связанные с файлом, такие как автор, создание даты и, что самое главное, теги.Хранение нескольких тегов в одном столбце
Я не уверен, как хранить несколько тегов для одного файла, самым простым способом я могу представить их как одну строку гиперссылок. Но это ставит вопрос о возможности отображения тегов в виде ссылок в приложении Windows в виде списка, а также как я могу фильтровать результаты поиска с помощью этого метода.
Более сложной идеей я бы хотел создать отдельную таблицу тегов, назначить каждому тегу уникальное трехзначное целое число, которое будет храниться как комбинированный длинный int для нескольких тегов.
например.
001 - tag1
002 - tag2
003 - tag3
, а затем хранить их в информации о файле, как 001002003
, если все три метки были связаны с файлом.
Если я сделаю это так, должен ли я объявить каждый мод как объект класса «Мод» в моем приложении, а затем переназначить гиперссылку на каждое значение тега и сохранить теги в виде коллекции объектов тега как свойство каждого мода? Является ли это платной идеей или я ее несколько усложнил?
EDIT:
Еще на ранних стадиях развития, еще предстоит проверить реализацию этого еще, но в настоящее время им, глядя на 50-100 тегов.
Как бы я начал структурировать таблицу files_to_tags? Я довольно новичок в моделировании реляционных баз данных, я бы лучше использовал CSV для хранения данных, но это не очень эффективно!
Поскольку вы каким-то образом кодируете теги, я предполагаю, что у вас есть предопределенный набор всех возможных тегов? Если это так, сколько тэгов? – Tonci
И почему бы не сохранить их в таблице files_to_tags ?. –
Создайте одну таблицу для хранения всех тегов, причем каждый тег имеет уникальный идентификатор.Создайте еще одну таблицу, которая создаст одну запись для каждой комбинации файла и тега, используя идентификатор файла и идентификатор тега. Таким образом, вы можете получить все файлы для одного или нескольких тегов или всех тегов для одного файла. – Tim