PDA

View Full Version : داشتن چند رکورد برای یک شخص در دیتا بیس sql



mori64
شنبه 26 آذر 1390, 16:32 عصر
درود
چطور میتونم برای یک شخص چند رکورد ثبت کنم؟

مشکل ایجاست که چون یک پرایمری کی تعریف کردم نمیتوم با همون کی رکورد جدید تعریف کنم.

یوسف زالی
شنبه 26 آذر 1390, 20:29 عصر
سلام.
باید مشخص کنید که چه فیلدهایی به ازای هر ردیف یونیک هستند.
اونها رو کلید بگیر.

Vahid.Shatery
یک شنبه 27 آذر 1390, 08:38 صبح
سلام
با Relationships به راحتی می تونید این کار را انجام بدین .
2 تا table درست کن که table دوم توسط relationship به table اول وصل بشه . بعد نام اشخاص را در table اول بریز و رکوردهای هر شخص را در table 2 .

mori64
یک شنبه 27 آذر 1390, 16:50 عصر
سلام.
باید مشخص کنید که چه فیلدهایی به ازای هر ردیف یونیک هستند.
اونها رو کلید بگیر.

تشکر از جواب
وقتی کلید بگیرم اجازه نمیده دوباره با همون کد پرسنلی (کلید) یه رکورد جدید ثبت کنم

mori64
یک شنبه 27 آذر 1390, 19:08 عصر
سلام
با Relationships به راحتی می تونید این کار را انجام بدین .
2 تا table درست کن که table دوم توسط relationship به table اول وصل بشه . بعد نام اشخاص را در table اول بریز و رکوردهای هر شخص را در table 2 .

تشکر از جواب
این رو بلد نیستم میرم امتحان میکنم اگر مشکلی بود میپرسم

یوسف زالی
یک شنبه 27 آذر 1390, 19:52 عصر
ببینید بگردید دنبال فیلد های یونیک.
مثلا کد و تاریخ ثبت.
برای تشکر هم بهتره از دکمه استفاده بشه.
بگید چی کار دارید می کنید بهتر می شه کمک کرد.

mori64
دوشنبه 28 آذر 1390, 11:54 صبح
ببینید بگردید دنبال فیلد های یونیک.
مثلا کد و تاریخ ثبت.
برای تشکر هم بهتره از دکمه استفاده بشه.
بگید چی کار دارید می کنید بهتر می شه کمک کرد.


برنامه برای کارگزینی یه شرکت است که قراره بعضی از اسناد پرونده کارکنان اسکن بشه
و در دیتابیس ذخیره بشه .
حالا باید چندتا فایل اسکن شده با یک کد پرسنلی ذخیره بشه .

یوسف زالی
دوشنبه 28 آذر 1390, 13:57 عصر
شما دو تا راه داری.
یک identity ایجاد کنی و اون رو کلید کنی یا اینکه شماره پرونده یا شماره سند به همراه کد پرسنل کلید بشه.

mori64
دوشنبه 28 آذر 1390, 18:29 عصر
شما دو تا راه داری.
یک identity ایجاد کنی و اون رو کلید کنی یا اینکه شماره پرونده یا شماره سند به همراه کد پرسنل کلید بشه.

یعنی primary key رو بردارم ؟
primary key رو که برمیدارم و دوتا فیلد رو همونطور که گفتید index تعریف میکنم وقتی فایل رو میخام ذخیره کنم ارور:
invalid BLOB length
رو میده !

یوسف زالی
دوشنبه 28 آذر 1390, 21:19 عصر
خوب فیلدی که انتخاب کردی مناسب نیوده.
ساحتار جداول رو بگذارید.

parsidev
دوشنبه 28 آذر 1390, 22:50 عصر
حاجی کل اصول جداول بانک اطلاعاتی رابطه ای رو بردین زیر سوال!
شما باید در یه جدول مشخصات پرسنل رو ذخیره کنید مثلا با چنین فلیدهایی:
id,fullname,birthdate,etc
خو معلومه که id قراره فیلد کلید ما باشه
در جدول دیگه اطلاعات مربوط به مدارک اسکن شده رو وارد کنید مثلا:
id,personid,scanedfile
در این جدول فیلد personid با فیلد id جدول قبلی ارتباط بدین و به این صورت می تونید برای هر شخص بی نهایت مدرک اسکن شده داشته باشید و با یه کوئری ساده میشه به اطلاعات مدارک هر فرد دسترسی داشت
ضمنا اگه مدارک اهمیت خیلی محرمانه ندارن به جای اینکه فایل اسکن شده رو تو دیتابیس ذخیره کنی می تونی نام یا مسیرش رو کپی کنی و حجم بانک و کارایی اون رو صدبرابر بالا ببری.

یوسف زالی
سه شنبه 29 آذر 1390, 09:07 صبح
دوست من


کل اصول جداول بانک اطلاعاتی رابطه ای رو بردین زیر سوال!

در حالت کلی این حرف صحیح نیست.
ممکنه دیتابیسی نیاز به نرمال سازی نداشته باشه (MIS, DSS) اما من هم فکر نمی کنم دوستمون در این مبحث کار کنه.
ممکنه که بخواد در junction table کلید این مدلی تعریف کنه..
بگذریم.
فکر می کنم ساختار داده همه چیز رو روشن می کنه.
پس نمی شه به این سرعت قضاوت کرد.

mori64
دوشنبه 05 دی 1390, 16:41 عصر
حاجی کل اصول جداول بانک اطلاعاتی رابطه ای رو بردین زیر سوال!
شما باید در یه جدول مشخصات پرسنل رو ذخیره کنید مثلا با چنین فلیدهایی:
id,fullname,birthdate,etc
خو معلومه که id قراره فیلد کلید ما باشه
در جدول دیگه اطلاعات مربوط به مدارک اسکن شده رو وارد کنید مثلا:
id,personid,scanedfile
در این جدول فیلد personid با فیلد id جدول قبلی ارتباط بدین و به این صورت می تونید برای هر شخص بی نهایت مدرک اسکن شده داشته باشید و با یه کوئری ساده میشه به اطلاعات مدارک هر فرد دسترسی داشت
ضمنا اگه مدارک اهمیت خیلی محرمانه ندارن به جای اینکه فایل اسکن شده رو تو دیتابیس ذخیره کنی می تونی نام یا مسیرش رو کپی کنی و حجم بانک و کارایی اون رو صدبرابر بالا ببری.

دو تا سوال :
1-id در جدول دوم به چه منظوری ایجاد شده (با وجود pesonid)؟
2- اینکه گفتید pesonid رو به id جدول اول ارتباط بدم ینی چی؟ منظورتون تو SQL Server ؟

parsidev
چهارشنبه 07 دی 1390, 23:46 عصر
1- ID یک فیلد یکتا و کلید اصلی برای هندل کردن رکورد های جدول است
2- PersonID کلید خارجی است که رکوردهای جدول جدید رو به جدول اصلی متصل میکنه،در اکثر بانک های اطلاعاتی و اس کیو ال سرور کاربرد داره

mori64
پنج شنبه 08 دی 1390, 11:13 صبح
1- ID یک فیلد یکتا و کلید اصلی برای هندل کردن رکورد های جدول است
2- PersonID کلید خارجی است که رکوردهای جدول جدید رو به جدول اصلی متصل میکنه،در اکثر بانک های اطلاعاتی و اس کیو ال سرور کاربرد داره


چطور باید pesronID رو به جدول اصلی متصل کنم؟