2013-04-11 4 views
0

Я новичок программист. Я полон теоретических знаний, но я отстаю от практики. ОК. Я пытаюсь создать программу для добавления категорий и описаний в файлы. Язык C#, он должен работать в Windows 7 ...Руководство по источникам данных для моего проекта

Категории 1.The могут содержать подкатегории.

Я не хочу называть их «тегами», потому что они разные. Категория может быть fx «фаворитами». Но это также может быть: «favorite-> music-> 2013». Вы можете создавать подкатегории, я буду использовать TreeView для WinForm для всех операций, которые пользователь может сделать с ними.

ВОПРОС: Должен ли я использовать XML-файл для категорий?

2.Есть файл CAN имеет описание и одну или несколько категорий. Однако:

  • Даже если файл удален, я хочу сохранить его описание, чтобы оно было доступно для последующего использования.
  • Папки сами будут опущены. Папки сами не могут иметь ни категорий, ни описания. Но содержащиеся файлы ДА.

Я сделал очень простую базу данных SQL Server, содержащую одну таблицу:! http://img832.imageshack.us/img832/3931/finalprojectdb.png

ВОПРОС: Это хорошая идея? Может быть, столбец категорий лучше иметь тип XML?

Любые рекомендации о том, какой должен быть наилучший подход в этой ситуации, приветствуются. Заранее спасибо !

+0

Существует что-то важное, что мне нужно знать, и затем я могу дать вам стандартный, проверенный и надежный способ хранения ваших данных. С этого момента существует множество стандартных методов создания древовидных изображений и другой навигации. Итак ... может ли подкатегория подчиняться более чем одной категории? То есть: если у вас есть «Music-> 2013», а также «Photos-> 2013», те же тег «2013» или есть два тега «2013»? – Jasmine

+0

В этом примере мы говорим о двух разных категориях, да :) –

+0

На самом деле я не знаю, могла ли быть хорошая идея «2013» как самостоятельная категория «за кулисами». Но то, что пользователь должен в конечном итоге увидеть, это «построенная» категория «Фото-> 2013», категория, которую он создал, используя TreeView для создания «2013» в качестве дочернего объекта «Фотографии».Меню дает древовидную структуру, но из этого пользователь получает всю категорию в виде строки: «Фото-> 2013». Итак, как бороться со всем этим - это то, что я пытаюсь выяснить :) –

ответ

0

SQL не подходит для получения вложенных данных одновременно. Вы можете хранить вещи в XML, что дает вам большую гибкость, но вы также должны написать для него парсер или десериализатор. В настоящее время люди также просто пишут немного Javascript-класса и используют что-то вроде Newtonsoft для десериализации его автоматически.

Если вы хотите решение БД, вы можете использовать что-то вроде SQLite, встроенного в ваше приложение, если вы не хотите устанавливать базу данных отдельно.

0

XML - отличный дизайн для приложения, которому требуется установить кросс-платформу (скажем, C# в java) или перекрестный интернет или перекрестную сеть. Но как способ хранения данных в виде подмножества в таблице, на самом деле.

Нормализованная база данных - потрясающий инструмент. Он может быть проиндексирован (xml не может), что позволяет быстро запрашивать данные. Если вы де-нормализуете свои данные, вставив xml в запрос столбца, он будет медленным и обновит/поддержит боль.

Я лично предпочитаю внешние таблицы ключей.

+0

Насколько мне нравится получать удовольствие от LINQ to XMl: DI также признает преимущества база данных. Теперь, с учетом сказанного, как хранить информацию обо всех категориях, которые может иметь один файл? Я стараюсь думать о таблицах и ключах, но просто не могу прийти с хорошей моделью. –

+0

Вам нужна рекурсивная таблица с внешним ключом для таблицы подробностей. – Anthony

Смежные вопросы