ورود

View Full Version : کمک در مورد ساخت یک بانک مناسب



saba664
شنبه 22 مهر 1396, 09:08 صبح
با سلام خدمت اساتید برنامه نویسی

من مشکلی برام پیش اومده بود که از همین سایت کمک گرفتم منتهای مراتب عزیزان گفتن sql من کاملا غلطه از اونجاییکه من مبتدی هستم خواستم کمکم کنین ی بانک خوب با جداول خوب داشته باشم.

این اسکریپت منه

USE [finaldoctor]
GO

/****** Object: Table [dbo].[sabt] Script Date: 10/14/2017 09:30:34 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[sabt](
[name] [nvarchar](50) NULL,
[family] [nvarchar](50) NULL,
[father] [nvarchar](50) NULL,
[jenseyat] [nvarchar](50) NULL,
[nezam] [nvarchar](10) NOT NULL,
[code] [nvarchar](10) NOT NULL,
[country] [nvarchar](10) NULL,
[ostan] [nvarchar](50) NULL,
[shahrestan] [nvarchar](50) NULL,
[telwork] [nvarchar](10) NULL,
[reshteh] [nvarchar](50) NULL,
[madrak] [nvarchar](50) NULL,
[vaestekhdam] [nvarchar](50) NULL,
[khed1] [nvarchar](50) NULL,
[khed2] [nvarchar](50) NULL,
[khed3] [nvarchar](50) NULL,
[khed4] [nvarchar](50) NULL,
[heatm] [nvarchar](10) NULL,
[heatn] [nvarchar](10) NULL,
[matabd] [nvarchar](10) NULL,
[matabn] [nvarchar](10) NULL,
[address] [nvarchar](200) NULL,
[photo] [varbinary](max) NULL,
[parvanehl] [varchar](50) NULL,
[parvaneht] [nvarchar](50) NULL,
[vazeatf] [nvarchar](50) NULL,
[vazeatgh] [nvarchar](50) NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

saba664
شنبه 22 مهر 1396, 09:18 صبح
این جدول برای ثبت و اما جداولی هم برای گزارش گیری و سوابق و ... می خوام ظاهرا البته طبق فرم هایی که دارم میگم

اینم فرم هام اینجا می ذارم ببینین و کمکم کنین

146718146719146720146721146722146723146724146725

رامین مرادی
شنبه 22 مهر 1396, 10:56 صبح
برای مثال استان، شهرستان،مدرک تحصیلی،رشته تحصیلی، میتونن هرکدوم یه جدول جداگونه باشن
. که شهر با استان در ارتباط هست. و بجای اینکه هم اسم استان هم اسم شهرستان رو ذخیره کنید ف فقط کد شهرستان رو ذخیره کنید.یا مثلا بجای اینکه هی تو جدولتون نوشته بشه لیسانس فقط یه عدد که نشون دهنده کلید اون مقطع باشه رو ذخیره کنید و موقع گزارش گیری با استفاده از جوین ها این جدوال رو به هم جوین کرده و داده های مد نظرتون رو دربیارید. .(با اینکار افزونگی رو هم جلوشو میگیرد هم داده هاتون منظمتر میشه. مثلا یکی دستی بیاد بنویسه کارشناسی و یکی دیگه بیاد بنویسه لیسانس یا یکی بگه لیسانس ناپیوسته :لبخندساده:)


در ضمن برای گزارش گیری جدول جداگانه نیاز نیست .گزارش از جداول موجود استخراج میشه. (البته شاید من منظورتونو اشتباه متوجه شدم)

saba664
شنبه 22 مهر 1396, 12:01 عصر
برای مثال استان، شهرستان،مدرک تحصیلی،رشته تحصیلی، میتونن هرکدوم یه جدول جداگونه باشن
. که شهر با استان در ارتباط هست. و بجای اینکه هم اسم استان هم اسم شهرستان رو ذخیره کنید ف فقط کد شهرستان رو ذخیره کنید.یا مثلا بجای اینکه هی تو جدولتون نوشته بشه لیسانس فقط یه عدد که نشون دهنده کلید اون مقطع باشه رو ذخیره کنید و موقع گزارش گیری با استفاده از جوین ها این جدوال رو به هم جوین کرده و داده های مد نظرتون رو دربیارید. .(با اینکار افزونگی رو هم جلوشو میگیرد هم داده هاتون منظمتر میشه. مثلا یکی دستی بیاد بنویسه کارشناسی و یکی دیگه بیاد بنویسه لیسانس یا یکی بگه لیسانس ناپیوسته :لبخندساده:)


در ضمن برای گزارش گیری جدول جداگانه نیاز نیست .گزارش از جداول موجود استخراج میشه. (البته شاید من منظورتونو اشتباه متوجه شدم)


نوع داده هام هم گفتن اشتباهه میشه اونم توضیح بدین؟ میخوام بانک درستو بدون ایرادی باشه

فقط ی سوال من ی جدول ثبت طراحی کردم خب چه نیازیه دوباره شهرستان و استان طراحی بشه برای گزارش گیری از جدول ثبت نمیشه استفاده کرد؟

رامین مرادی
شنبه 22 مهر 1396, 12:35 عصر
نوع داده هام هم گفتن اشتباهه میشه اونم توضیح بدین؟ میخوام بانک درستو بدون ایرادی باشه

فقط ی سوال من ی جدول ثبت طراحی کردم خب چه نیازیه دوباره شهرستان و استان طراحی بشه برای گزارش گیری از جدول ثبت نمیشه استفاده کرد؟
در مورد سوال اولتون مثلا میتونید وضعیت پروانه رو به صورت بیت (یک یا صفر) تبدیل کنید.
در مورد سوال دومتون:
فرض کنید شما یک میلیون رکورد دارید. تو هر رکوردتون یه بار نوشتید استان تهران شهرستان اسلامشهر (یعنی یک میلیونتا کلمه تهران تکراری + یک میلیونتا کلمه اسلامشهر تکراری)(به نظرتون منطقیه یا جالبه؟)
خب اما تو روشی که من گفتم شما فقط یک بار اسم تهران رو تو یه جدول جدا(استان) میارید. بعد تو یه جدول جدا (شهرستان) اسم اسلامشهر رو میارید که جزو شهرهای تهران هست. خب حالا شما میاید تو جدول ثبت بجای دوتا فیلد فقط کد عددی اسلامشهر رو ذخیره میکنید.و در صورت نیاز اسم استنشم میتونید با توجه به کد شهر هم دربیارید.

خب یه نکته دیگه .حالا برنامه شما بسط پیدا کرد و مثلا 20 تا فرم دیگه هم داشتید که توش شهر و استان هم نیاز بود.
حالا حساب کنید برای یک میلیون رکورد . تو هر جدول 2 میلیون بعد تو 20 تا جدول میشه 40 میلیون رکورد رشته ای تکراری(اکثرا)

saba664
شنبه 22 مهر 1396, 12:51 عصر
در مورد سوال اولتون مثلا میتونید وضعیت پروانه رو به صورت بیت (یک یا صفر) تبدیل کنید.
در مورد سوال دومتون:
فرض کنید شما یک میلیون رکورد دارید. تو هر رکوردتون یه بار نوشتید استان تهران شهرستان اسلامشهر (یعنی یک میلیونتا کلمه تهران تکراری + یک میلیونتا کلمه اسلامشهر تکراری)(به نظرتون منطقیه یا جالبه؟)
خب اما تو روشی که من گفتم شما فقط یک بار اسم تهران رو تو یه جدول جدا(استان) میارید. بعد تو یه جدول جدا (شهرستان) اسم اسلامشهر رو میارید که جزو شهرهای تهران هست. خب حالا شما میاید تو جدول ثبت بجای دوتا فیلد فقط کد عددی اسلامشهر رو ذخیره میکنید.و در صورت نیاز اسم استنشم میتونید با توجه به کد شهر هم دربیارید.

خب یه نکته دیگه .حالا برنامه شما بسط پیدا کرد و مثلا 20 تا فرم دیگه هم داشتید که توش شهر و استان هم نیاز بود.
حالا حساب کنید برای یک میلیون رکورد . تو هر جدول 2 میلیون بعد تو 20 تا جدول میشه 40 میلیون رکورد رشته ای تکراری(اکثرا)

خب با این اوصاف من باید به جز جدول ثبت جداول دیگه ایی از جمله شهرستان و استان هم داشته باشم؟ یا فیلد جدول ثبت هم پاک کنم؟ ببخشید اگه خوب متوجه منظورتون نمیشم اینو بذارین به حساب مبتدی بودنم

رامین مرادی
شنبه 22 مهر 1396, 13:15 عصر
شما مثلا میتونید یه جدول ثبت داشته باشی. با یک فیلد کد شهرستان(دیگه نیاز نیست اسم استان و اسم شهرستان رو بنویسید فقط به جاش کد شهرستان رو ذخیره میکنید.)
بعد یک جدول داشته باشید به اسم استان و فیلدهاش باشه کد استان و نام استان
یک جدول دیگه هم به اسم شهرستان باشه با فیلدهای کد شهرستان و نام شهرستان و کد استان
(نوع فیلدهای کد هم بهتره int باشه)