Генератор

1

Тут я показываю какая у меня база получилась. Так что если у вас еще нет своей, или вы ее недоделали то можете сориентироваться на мою (смотри подсказку).

Если же у вас уже база есть, то вам надо ее проверить и при необходимости подкрутить чтобы для нее были верны следующие утверждения

  1. У всех таблиц должен быть суррогатный первичный ключ, то бишь идентификатор: id, даже если уже есть естественный (ну типа там номер паспорта)
  2. Должна быть хотя бы одна таблица со связью (one-to-many), в моем примере это таблица Races, то есть гонки, у которая идет связь на Locations через location_id, такая связь характеризует место проведения гонки
  3. Должна быть хотя бы одна таблица которая связывает две (связь many-to-many), в моем примере это RacesToCats таблица
  4. В таблице many-to-many помимо полей которые связывают две таблицы (race_id, cat_id) должно быть еще поле которое характеризует эту связь (в моем случае это time – время забега котяры)
  5. Должна быть хотя бы одна таблица со связью на саму себя. В моем случае таблица Locations, связь parent_location_id. Используется для построения иерархии локаций, то есть, например, есть локация Квартира, внутри которой есть локация Кухня, Ванная, Гостиная и т.д.
2
  • Добавить возможность выбирать подключение к локальной базе или к серверу
  • В случае работы с локальной базы, реализовать клик на кнопку при котором открывается возможность выбрать файл с базой
  • В случае с локальной должно быть два поля Название сервера которое должно мэпиться в поле DataSource, и название БД которое должно мэпиться в InitialCatalog
  • При нажатии на кнопку выполнять запрос, но соединение выполнять к той базе, которая выбрана вверху в табе с подключением.
  • [необязательно] Реализовать сохранение выбранных на форме значений в файл, чтобы при открытии формы значения восстанавливались, как сделать такой файлик смотри тут
  • [необязательно] Добавить возможность выбирать базу данных из комбобокса, как получить список БД смотри тут
  • [необязательно] Добавить возможность указывать юзер/пароль

Должно получится как-то так:

3

Реализовать генерацию данных для простых таблиц опираясь на пример

  • Чтобы с данными работать в будущем было интереснее обязательно добавьте какое-нибудь поле с признаком который имеет органиченый набор возможных значений. Например в моем случае это порода
4

Реализовать генерацию данных для иерархической таблицы

  • Обеспечить вложеность не менее чем в три уровня