Попытка реализации универсального решения

Ярослав

Новичок
Попытка реализации универсального решения

Здравствуйте.
Попытаюсь обьясниться как можно проще и понятней.
Есть 3 таблицы:

Students
---------------------
st_id | int
firstname | varchar
lastname | varchar
zipcode | varchar

Company
------------------------
c_id | int
c_name | varchar

StudentCompany
---------------------------
student_id | int
company_id | int

связи:
Students.st_id=StudentCompany.student_id
Company.c_id=StudentCompany.company_id

Надо сделать следующее
Добавлять с админской части поля для студента в зависимости от компании.
тоисть в компании1 у студента1 есть имя, фамилия, зипкод, а у компании2 студенту1 нужно приписать дату рождения, а вот зипкод уже не нужен
и так же в зависимости от компании нужно генерить форму в HTML
так вот как такую функциональность реализовать
как хранить код в базе? Добавлять поля через alter table или какой-нибудь другой метод хранения?
вот тут http://www.ageofweb.ru/cgi-bin/core/engine.cgi?action=Read&BID=36&TID=286 есть интерестное размышление на тему но там не показато как это реализовать.
Хотелось бы услышать Ваше мнение
Может уже есть готовые решения буду рад ссылкам.
Если что непонятно спрашивайте
 

Dagdamor

Новичок
Ярослав
Как вариант, можно добавить в таблицу Company поле studentfields, где через запятую перечислить актуальные для данной компании поля студента, и использовать эту информацию при отображении формы. :)
 

ZigFreeD

Новичок
а почему не сохдать таблицу студентов чуть подругому?
напрмиер так...
st_id | int
var | varchar
value | varchar

где у тебя будет одному студенту не одна строка а несколько... например для 2 студента
1|Name|Petya
1|SurName|Petrov
1|ZipCode|tra-lala

для студента 2
2|Name|Petya
2|SurName|Petrov
2|Birth|01.01.1970

как видишь довольно просто...
 

unnamed01

Новичок
Если выбирать/сортировать по этим этим доп. полям не нужно можно запихнуть их в виде сериализованного массива.
Еще можно создать таблицу Students со всеми возможными полями и там где ничего нет записывать NULL или какое-либо дефолтное значение.

Если надо знать в какую форму включать какие поля, нужно добавить в таблицу Company поле. Туда будут записаны все необходимые для этой компании поля из таблицы Students.
 

Ярослав

Новичок
Автор оригинала: unnamed01
Если выбирать/сортировать по этим этим доп. полям не нужно можно запихнуть их в виде сериализованного массива.
Как раз это тоже нужно

Еще можно создать таблицу Students со всеми возможными полями и там где ничего нет записывать NULL или какое-либо дефолтное значение.
Я тоже думал над этим вариантом но я не знаю сколько будет полей их же можно будет добавлять динамически
Это наверное почти как рассмотрено здесь http://phpclub.ru/talk/showthread.php?postid=741827#post741827

Если надо знать в какую форму включать какие поля, нужно добавить в таблицу Company поле. Туда будут записаны все необходимые для этой компании поля из таблицы Students.
Тут наверное так и будет
 
Сверху