2015-08-05 6 views
0

У меня есть база данных, которая содержит таблицу сотовых телефонов. Предположим, что у каждого мобильного телефона 10 полей. Чтобы заполнить или изменить таблицу, у меня будет несколько доступных форм для пользователя. Однако я не хочу, чтобы пользователь каждый раз менял все 10 полей. Я хочу, чтобы он просто предоставил информацию о 4 из полей, а остальные из них будут автоматически заполнены или изменены программой. Кто-нибудь знает, как это сделать? :)Как заполнить поля таблицы в LibreOffice Base автоматически?

ответ

0

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

Так что если, скажем, каждый магазин продает только один цвет телефона, вы должны ввести пользователя только в магазин. У вас будет другая таблица, в которой будут показаны отношения между именем магазина и цветом телефона. Затем, когда вам нужен список пользователей и их цвета телефона, вы должны написать запрос, который будет смотреть на список таблиц пользователей и где они купят свои телефоны и присоединятся к нему в список магазинов и какие цвета они продают.

Мой совет состоит из трех уровней:

  • Почти наверняка лучше - перепроектировать свою базу данных, чтобы быть более нормализуется, то есть использование связей между таблицами, чтобы предотвратить необходимость дублирования данных.
  • Если вы решили, что вам нужны макросы, хорошим ресурсом для работы с макросами OpenOffice является книга Эндрю Питоньяка OpenOffice Macros Explained (бесплатная загрузка с его сайта).
  • SQL Triggers часто являются более чистым способом выполнения этого (по сравнению с макросами), но не поддерживаются старым механизмом базы данных, который является базовым значением по умолчанию. (Сама база обрабатывает только запросы, формы и отчеты. Таблицы обрабатываются отдельным программным обеспечением, которое по умолчанию представляет собой старую версию 1.8 базы данных HyperSQL или HSQLDB, которая «встроена» внутри Base.) Вам нужно будет перейти на новую программное обеспечение базы данных. Инструкции по обновлению до HSQLDB 2.3 приведены в этой теме: [Tutorial] Splitting an "embedded HSQL database"
Смежные вопросы