Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: База данных для учета бланков
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » База данных для учета бланков

Страниц (1): [1]
 

1. Angel_09 - 14 Октября, 2015 - 16:44:15 - перейти к сообщению
Всем привет, дело в том что я очень долгое время не писал свое и к тому же я самоучка.
Так вот суть в том что на работе у меня попросили написать программу для учета страховых бланков.

В базе данных я собираюсь использовать 6 таблицы:
CODE (SQL):
скопировать код в буфер обмена
  1. бланки - страховые бланки, будет три столбца: серия (3 символа)| номер (10 символов) | дата.
  2.  
  3. квитанции - квитанции что выдаются вместе с бланками,  до момента выдачи клиенту они разделены. будет так же три столбца: серия (3 символа)| номер (6 символов) | дата.
  4.  
  5. выдача б- выданные бланки агентам. тут уже 4 столбца: серия (3 символа)| номер (10 символов) | агент | дата
  6.  
  7. выдача к- выданные квитанций агентам. тут уже 4 столбца: серия (3 символа)| номер (6 символов) | агент | дата
  8.  
  9. продажа - продажа бланков, вот с этого момента бланки и квитанции объединяются в целое, тут будет 8 столбцов: серия б (3 символа)| номер б (10 символов) | серия к (3 символа)| номер к (6 символов) | агент | Ф.И.О. | дата | стоимость.
  10.  
  11. агенты - от сюда будет браться информация об агентах. Тут у нас 5 столбцов: короткое имя | полные Ф.И.О. | Адрес офиса | номер телефона | примечания


Ну собственно говоря для меня здесь вся сложность в том что нужно реализовать выдачу.
Когда агенту будут выдавать бланк или квитанцию, нужно что-бы этот бланк илии квитанция удалялись с таблиц не выданных.
И тоже и самое с таблицей продажа - когда добавляешь бланк в проданные он должен удалиться из выданных.
как мне это реализовать в php? желательно поподробнее.
Очень прошу помочь.
Заранее спасибо
2. Мелкий - 14 Октября, 2015 - 17:09:51 - перейти к сообщению
Для начала нормализуйте. Будет сразу проще работать.

Бланк от выданного бланка различается только id агента, у первых id агента ещё нет. Ну и сделайте поле по-умолчанию NULL. Если у бланка агент is null - его ещё никто не выдал.
Аналогично с квитанциями.
В таблице продажей бланков соответственно нормализуйте данные в первую очередь.

Это что можно по схеме сказать, в принципе ничего не зная о вашей предметной области.
3. Angel_09 - 14 Октября, 2015 - 21:23:43 - перейти к сообщению
Мелкий пишет:
Для начала нормализуйте. Будет сразу проще работать.

Бланк от выданного бланка различается только id агента, у первых id агента ещё нет. Ну и сделайте поле по-умолчанию NULL. Если у бланка агент is null - его ещё никто не выдал.
Аналогично с квитанциями.
В таблице продажей бланков соответственно нормализуйте данные в первую очередь.

Это что можно по схеме сказать, в принципе ничего не зная о вашей предметной области.

от спасибо, а можно поподробнее
4. Angel_09 - 17 Октября, 2015 - 02:36:15 - перейти к сообщению
Мелкий пишет:
Для начала нормализуйте. Будет сразу проще работать.

Бланк от выданного бланка различается только id агента, у первых id агента ещё нет. Ну и сделайте поле по-умолчанию NULL. Если у бланка агент is null - его ещё никто не выдал.
Аналогично с квитанциями.
В таблице продажей бланков соответственно нормализуйте данные в первую очередь.

Это что можно по схеме сказать, в принципе ничего не зная о вашей предметной области.


Немного помыслив я решил что по следующей таблице это будет реализовать легче:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. --
  3. -- Структура таблицы `form`
  4. --
  5.  
  6. CREATE TABLE IF NOT EXISTS `form` (
  7.   `id` int(11) NOT NULL COMMENT 'ид бланка',
  8.   `seriesa` varchar(3) COLLATE utf8_unicode_ci NOT NULL COMMENT 'серия бланка',
  9.   `numbera` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'номер бланка',
  10.   `datea` date NOT NULL COMMENT 'дата бланка',
  11.   `seriesb` varchar(3) COLLATE utf8_unicode_ci NOT NULL COMMENT 'серия квитанции',
  12.   `numberb` varchar(6) COLLATE utf8_unicode_ci NOT NULL COMMENT 'номер квитанции',
  13.   `dateb` date NOT NULL COMMENT 'дата квитанции',
  14.   `agent` varchar(16) COLLATE utf8_unicode_ci NOT NULL COMMENT 'выдано агенту',
  15.   `datec` date NOT NULL COMMENT 'дата выдачи',
  16.   `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Ф.И.О. клиента',
  17.   `dated` date NOT NULL COMMENT 'дата продажи',
  18.   `price` varchar(7) COLLATE utf8_unicode_ci NOT NULL COMMENT 'цена',
  19.   `status` int(1) NOT NULL
  20. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='таблица учета бланков и квитанций';
  21.  


вопрос терь остается в том, как выставить бд и как реализовать зависимость от статуса

 

Powered by ExBB FM 1.0 RC1