Сразу предупреждаю, я не профи в СуБД.
Структуры приведены в качестве примера для понимания. Не надо искать в них ошибки.
Есть таблица user. В таблице user есть стандартные поля:
user_id int(6) K auto
user_name varchar(32) U
user_password varchar(64)
Работаю над системой и встал вопрос о дальнейшей структуре. Через систему управления администратор может добавить дополнительные атрибуты. То-есть к примеру чтобы можно было добавить для пользователя Ф.И.О.
В голове только 2 варианта структуры.
а::
Создать таблицу attr где будут содержатся список атрибутов дополнительных.
Создать таблицу attr_data со структурой: attr_id, value, user_id куда будут записываться нужные данные.
б::
При создании нового атрибута просто добавлять в таблице user новое поле. К примеру fio, passport.
Конечная структура будет в данном случае:
user_id int(6) K auto
user_name varchar(32) U
user_password varchar(64)
fio [тип_значения]
passport [тип_значения]
С одной стороны второй вариант проще. Особенно если учесть, что при выводе списка пользователя отсортировать будет проще. Чем ползать по нескольким таблицам и строить ассоциированные массивы.
С другой стороны есть небольшое опасение на предмет надёжности структуры таблицы. Атрибутов будет много и некоторые из них будут по типу TEXT.
Вопрос заключается в том, какой вариант лучше с точки зрения надёжности базы. Учитывая, что атрибутов на моей копии системы уже больше 40.
Если есть другой вариант - буду рад его услышать.
Тип таблиц MyISAM
Заранее благодарю.
Примечание:
Интенсивность обращения довольно большая. Не просто чтение данных, но постоянное обновление значений. Атрибуты так таковые будут использоваться не только для администраторов, но и для записи других параметров.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.