|
Тема |
Структура на база данни... |
|
Автор |
VladoVasilev (минаващ) |
|
Публикувано | 01.11.05 12:58 |
|
|
Имам една питанка - предполагам че доста от хората тук са се сблъсквали с подобен проблем и имат готово решение :)
Значи, пиша бизнес приложение - в него имам таблица "СТОКИ" - с които работи фирмата, и таблица "ФАКТУРИ" - фактурите, които фирмата е издала на свои клиенти, освен това таблица "ФАКТУРИ-ДЕТАЙЛИ" с foreign key към "ФАКТУРИ" (master-detail). В повечето случаи детайлите на дадена фактури са артикули, които съществуват като запис в таблица "СТОКИ". Понякога обаче се налага да се пусне фактура за нещо, което не е от "СТОКИ" (пример: изписваме Процесор, Дъно, Памет, във фактурата пишем "КОМПЮТЪРНИ КОМПОНЕНТИ"). Данните за дадена стока са много (нормално - име, код,размер,цвят...) и затова първия случай (във фактурата изписвам конкретен артикул от таблица "СТОКИ") съм решил със foreign key от "ФАКТУРИ-ДЕТАЙЛИ" към "СТОКИ". Така във "ФАКТУРИ-ДЕТАЙЛИ" не пазя дори името на съответния артикул. Втория случай обаче не мога да измислия...
Един вариант е още една таблица "ФАКТУРИ-ДЕТАЙЛИ-НЕСТАНДАРТНИ", но после ще е доста трудна работата май (например една фактура, в която има и двата вида стоки и в съответния DBGrid те трябва да са наредени в реда, в който оператора ги е вкарал - UNION-a май няма да може да събере двете таблици "ФАКТУРИ-ДЕТАЙЛИ-НЕСТАНДАРТНИ" и "ФАКТУРИ-ДЕТАЙЛ" в една по наредба зададена от мене, базата е Firebird.1.5.2). Друг вариант е всичките данни от "СТОКИ" да се прекопират всеки път във "ФАКТУРИ-ДЕТАЙЛИ", но ще отива доста излишно място ми се струва. Това е въпроса - мерси на експериментиралите :)
|
| |
|
|
|