Я сейчас пишу модуль адресной книги для моего программного обеспечения. Я настроил базу данных настолько, что она поддерживает очень гибкую конфигурацию адресной книги.
Я могу создать n записей для каждого типа, который я хочу. Тип означает здесь данные, такие как «электронная почта», «адрес», «телефон» и т. Д.
У меня есть таблица с именем contact_profiles.
Это только две колонки:
id Primary key
date_created DATETIME
А затем есть таблица с именем contact_attributes. Это немного сложнее:
id PK
#profile (Foreign key to contact_profiles.id)
type VARCHAR describing the type of the entry (name, email, phone, fax, website, ...) I should probably change this to a SET later.
value Text (containing the value for the attribute).
Теперь я могу ссылаться на эти профили, например, из таблицы моего пользователя. Но отсюда я сталкиваюсь с проблемами.
В данный момент мне нужно создать JOIN для каждого значения, которое я хочу получить.
Есть ли возможность каким-либо образом создать представление, которое дает мне результат с типом как столбцы?
Так что сейчас я бы получил что-то вроде
#profile type value
1 email name@domain.tld
1 name Sebastian Hoitz
1 website domain.tld
Но было бы неплохо получить такой результат:
#profile email name website
1 name@domain.tld Sebastian Hoitz domain.tld
Причина, по которой я не хочу изначально создавать макет таблицы, заключается в том, что всегда можно что-то добавить, и я хочу иметь возможность иметь несколько атрибутов одного типа.
Так вы знаете, есть ли возможность конвертировать это динамически?
Если вам нужно лучшее описание, пожалуйста, дайте мне знать.