Наличие класса для каждой таблицы в базе данных - PullRequest
0 голосов
/ 20 сентября 2010

Я создаю программное обеспечение для библиотеки моих друзей.На данный момент у меня есть таблица в базе данных для книг и фильмов, но давайте предположим, что пользователь хотел бы также добавить компакт-диски.Тогда я должен был бы позволить пользователю создать таблицу в базе данных для компакт-дисков.До сих пор планировалось иметь класс для каждой таблицы в базе данных с ее полями и методами для вставки и обновления данных в базе данных (c # и mysql).Как я могу пойти дальше и создать «общий» класс для всех таблиц в базе данных, а не для каждого конкретного, как я делаю сейчас.

Я ищу имя в шаблоне или что-то вродечто, не полный урок в ответ.

Спасибо:)

Ответы [ 3 ]

1 голос
/ 20 сентября 2010

Вот несколько шаблонов:

0 голосов
/ 20 сентября 2010

Вы можете использовать что-то, что называется STI : наследование одной таблицы. Я думаю, он подходит для таких мест, где несколько атрибутов являются общими, а некоторые - отдельными.

Таким образом, вы можете создать таблицу, назвать ее LibraryItem, и она имеет тип, который может быть CD, book, dvd и заголовок, и некоторые поля, которые будут заполнены для одного типа и пустыми для других.

Обычно лучше создавать отдельные таблицы для каждой, но иногда подход STI является более гибким. Вы можете легко добавить новый тип: например, LP или VHS, если они не вводят слишком много новых атрибутов / полей.

0 голосов
/ 20 сентября 2010

Вы можете сделать это, используя карту или словарь.Простыми словами, используя пары имя / значение.Но это довольно плохой дизайн для того, что вы делаете.Это усложнит для вас и управление.

Я знаю, что вы думаете о необходимости снова и снова писать одни и те же методы для всех таблиц.Для этого случая вы должны использовать какой-то ORM (Object Relation Mapping).Для Java вы можете использовать Hibernate, Toplink.NHibernate - это порт Hibernate в .Net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...