View Full Version : سوال :چطور ميتونم چند قلم كالا رو تو يه جدول فاكتور ذخيره كنم؟(يا چند قلم دارو داخل جدول نسخه)
sadegh.sfs
پنج شنبه 21 دی 1391, 22:49 عصر
سلام
چطور ميتونم چند قلم دارو رو تو جدول نسخه ذخيره كنم؟
فيلد هاي جدول :1-كد نسخه 2-كد بيمه 3- كد دارو 4-تعداد دارو
اين جوري هر ركورد جدول مال يه دارو ميشه يعني تو هر نسخه فقط يه قلم دارو ميتونم ذخيره كنم!!!
محمد سلیم آبادی
پنج شنبه 21 دی 1391, 23:05 عصر
سلام،
اين جوري هر ركورد جدول مال يه دارو ميشهدرسته هر ردیف مربوط به یک دارو هست. باید هم همین طور باشه. شما موقع گزارش گیری بر اساس کدنسخه گروه بندی انجام میدین. و هر گزارشی که خواستین رو بدست میارین.
يعني تو هر نسخه فقط يه قلم دارو ميتونم ذخيره كنم!!!نه جانم. شما به چند سطر(رکورد) نمونه زیر توجه بفرمایید، داده ها به این شکل قرار هست در جدول "نسخه" ذخیره بشن. از لحاظ گزارش گیری و اینجور مسائل هم مشکلی نخواهید داشت.
کدنسخه▌ کد دارو ▌ تعداد
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
1------------ 20------ 1
1------------ 25------ 2
1 ------------14------ 1
1------------ 17------ 5
sadegh.sfs
جمعه 22 دی 1391, 14:57 عصر
سلام،
درسته هر ردیف مربوط به یک دارو هست. باید هم همین طور باشه. شما موقع گزارش گیری بر اساس کدنسخه گروه بندی انجام میدین. و هر گزارشی که خواستین رو بدست میارین.
نه جانم. شما به چند سطر(رکورد) نمونه زیر توجه بفرمایید، داده ها به این شکل قرار هست در جدول "نسخه" ذخیره بشن. از لحاظ گزارش گیری و اینجور مسائل هم مشکلی نخواهید داشت.
کدنسخه▌ کد دارو ▌ تعداد
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
1------------ 20------ 1
1------------ 25------ 2
1 ------------14------ 1
1------------ 17------ 5
خيلي ممنون:تشویق:
با اينكار ديگه نمي تونيم كد نسخه رو كليد اصليp.k) بگيريم. بايد تركيب كليد هاي خارجي از جدول هاي ديگه مثل (كد دارو | كدبيمه| كد پزشك|كد بيمار|و... رو به عنوان كليد اصلي استفاده كنيم. درسته؟
محمد سلیم آبادی
جمعه 22 دی 1391, 15:41 عصر
بله درسته...
کد نسخه چون اینجا دائما تکرار میشه طبیعتا به عنوان کلید در نظر گرفته نمیشه. شما چند راه دارید یکی اینکه یک ستون اضافه کنید از نوع مثلا identity که خودکار مقداردهی بشه و اون رو به عنوان کلید اولیه در نظر بگیرین و ترکیب کد نسخه و کد دارو (یا مدلهای دیگه) را unique قرار بدین یا اینکه ترکیب مثلا کد نسخه و کد دارو را کلید قرار بدین.
sadegh.sfs
جمعه 22 دی 1391, 22:52 عصر
بله درسته...
کد نسخه چون اینجا دائما تکرار میشه طبیعتا به عنوان کلید در نظر گرفته نمیشه. شما چند راه دارید یکی اینکه یک ستون اضافه کنید از نوع مثلا identity که خودکار مقداردهی بشه و اون رو به عنوان کلید اولیه در نظر بگیرین و ترکیب کد نسخه و کد دارو (یا مدلهای دیگه) را unique قرار بدین یا اینکه ترکیب مثلا کد نسخه و کد دارو را کلید قرار بدین.
باز هم ممنون
یکی اینکه یک ستون اضافه کنید از نوع مثلا identity که خودکار مقداردهی بشه و اون رو به عنوان کلید اولیه در نظر بگیرین و ترکیب کد نسخه و کد دارو (یا مدلهای دیگه) را unique قرار بدین
روش اول رو خيلي متوجه نشدم!
محمد سلیم آبادی
شنبه 23 دی 1391, 10:01 صبح
روش اول رو خيلي متوجه نشدم! به DDL زیر توجه کنید:
create table noskhe
(noskhe_id integer identity(1, 1),
noshke_code integer not null,
daro_code not null foreign key references table_daro(daro_code),
primary key (noskhe_id),
unique (noshke_code, daro_code))
در این جدول ما ستونی به نام noskhe_id اضافه کردین که از نوع integer هست و به طور خودکار مقدار دهی میشه (identity) و آن را به عنوان کلید اولیه جدول درنظر گرفتیم. سپس ترکیب دو ستون کدنسخه و کددارو را یکتا فرض کردیم (توسط قید unique)...
hamedAdmin
سه شنبه 26 دی 1391, 11:02 صبح
البته یه راه غیر اصولی هم وجود داره.
استفاده از همون روش اول که یه جدول واسه آی دی نسخه داشته باشیم و یه جدول واسه دارو و تو جدول نسخه ات یه فیلد از نوع xml بذاری که آی دی داروهای اون نسخه رو توش بنویسی!
گاهی تو کاربردای خاص بهتر از روش مطرح شده است.
محمد سلیم آبادی
سه شنبه 26 دی 1391, 17:11 عصر
البته یه راه غیر اصولی هم وجود داره.
غیر اصولی چه عرض کنم، غیر نرمال
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.