لینک کوتاه
یکشنبه , 16 آذر 1399
2 دیدگاه
گاهاً لازمه در ساختار دیتابیس یک فیلد داشته باشید که با استفاده از مقادیر سایر فیلدها مقدار دهی بشود ، بطور مثال فرض کنید دو فیلد نام و نام خانوادگی دارید و سپس یک فیلد نام کامل دارید ، که میخواهید بر اساس دیتای دو فیلد دیگر همیشه مقدار دهی بشود .
در PostgreSQL با استفاده از دستور generated always as امکان پذیر هست .
با هم همین مثال رو بررسی میکنیم . ابتدا یک جدول میسازیم .
CREATE TABLE "test2" ( id SERIAL , first_name VARCHAR(100), last_name VARCHAR(100) , full_name VARCHAR(201) generated always AS (first_name || ' ' || last_name) stored ) ;
و سپس یک رکورد را وارد میکنیم
INSERT INTO "test2" ( "first_name", "last_name" ) VALUES ( 'reza', 'karimi' );
و حالا نتیجه .
لینک کوتاه
یکشنبه , 17 آذر 1398
0 دیدگاه
احتمالا اگر با دیتابیس هایی مثل mysql کار کرده باشید با یک auto increment ساده میتونید فیلد های id رو بصورت auto increment مقدار دهی کنید که خب خیلی عالیه اما توی postgresql معمولا فیلد رو از نوع serial میسازن و خود pg زحمت ساخت یک sequence رو برامون میکشه و الباقی داستان !!
یکی از دوستان توی گروه میخواست به روش mysql اینکارو انجام بده و خب بلطبع راه کارش استفاده از یک تریگر هست !
خب ما یک جدول میسازیم با دو تا فیلد که یکیش id از نوع integer هست .
میتونید روی این فیلد هم index unique بذارید .
-- create table
CREATE TABLE "tbl" (
"id" integer,
"title" character varying(255)
);
کاری که باید انجام بدیم ساخت یک تریگر هست که زمانی که یک insert داخل این جدول رخ میده ، max(id) رو در بیاره و +1 بکنه و برای رکورد جدید اعمال بکنه
-- create function
create or replace function id_increment_tbl()
returns trigger as
$BODY$
DECLARE
an_integer int4 ;
begin
select (max(id)::integer + 1) into an_integer from tbl ;
if an_integer IS NULL then
an_integer:=1;
end if;
NEW.id := an_integer;
return NEW;
end;
$BODY$
LANGUAGE plpgsql;
-- create trigger
CREATE TRIGGER idincrementTrigger
BEFORE INSERT
ON tbl
FOR EACH ROW
EXECUTE PROCEDURE id_increment_tbl();
و حالا تست میکنیم
insert into tbl(title) values ('test');
لینک کوتاه
یکشنبه , 06 مرداد 1398
0 دیدگاه
متاسفانه GitHub مشغول بستن دسترسی کاربرهای ایرانی هست ، لذا کلیه افرادی که سورس هاشون روی GitHub هست توصیه میکنم سریعا به سرویس های دیگه منتقل بکنند .
متاسفانه ممکنه اوضاع روی سرویس های مشابه مثل GitLab هم همین بشه در آینده ، پس یکی از راه حل ها نصب سورس کنترل اختصاصی روی سرور هست .
آموزش نصب GitLab روی سرور
GitLab این امکان رو داره که روی سرور شخصی نصب بشه . اما شایدم بد نباشه یه نگاهی به GitPrep هم بندازید .
GitPrep یک سورس کنترل هست که شبیه به گیت هاب پیاده سازی شده و میتوانید بعنوان سورس کنترل ازش استفاده بکنید و روی سرور شخصی نصب نمایید.
آموزش نصب GitPrep روی سرور
دمو GitPrep
لینک کوتاه
چهارشنبه , 13 مرداد 1395
7 دیدگاه
سلام
قطعا پیش آمده براتون که در دیتابیس رکوردهای تکراری براساس یک فیلد رخ بده
مثلا ، کاربری با نام کاربری یکسان منتها بصورت حروف بزرگ و کوچیک ثبت نام کرده باشه Reza , reza rEzA
یا حتی مثلا شخصی به اسم رضا اقدام به ارسال چندین نظر کرده باشه
یا اینکه یکی از مطالب اخبارتون دو بار ثبت شده باشه
علی ای حال ، قطعا این مساله رخ میدهد
و اما ما میخوایم ببینیم با اینها چکار کنیم
ادامه مطلب ...
لینک کوتاه
سه شنبه , 25 اسفند 1394
4 دیدگاه
پارتیشن بندی اساسا در دیتاهای بزرگ سبب افزایش سرعت (قابل ملموس) دستورات SELECT میشود.
و همانطور که از اسمش پیداست براین اساس هست که رکوردهای یک جدول را به چندین پارت کوچکتر تقسیم میکند و براساس نوع تقسیم بندی فقط در یک یا چند پارت کوچکتر عملیات جستجو را انجام میدهد که این نتیجه خوبی در دیتاهای بارکورد بالا خواهد داشت ، دیتابیس هایی چون MySQL و MSSQL چنین قابلیتی رو دارا هستند که بسادگی پارتیشن بندی در آنها ایجاد کرد اما برای PostgreSQL کمی داستان متفاوت است. در حقیقت پارتیشن بندی در PostgreSQL با قابلیت وراثت جداول از یکدیگر قابل پیاده سازی میباشد به این ترتیب که یک جدول مادر ساخته میشود و جدولهای فرزند متعدد (که بعنوان پارت های جدا هستند) از جدول مادر ارث بری میکنند و وظیفه ذخیره داده ها را برعهده دارند .
در ادامه نحوه ساخت پارتیشن بندی دیتابیس در Postgresql را آموزش میدهیم .
ادامه مطلب ...
لینک کوتاه
شنبه , 09 آبان 1394
3 دیدگاه
با سلام
بعد از مدت طولانی باز هم برگشتم
شاید یک زمانی در یک پروژه ای خواستید یک اسکرین شات از یک صفحه سایت بگیرید
خیله خب ، ساده است اول میرید به اون سایت ، بعد روی کیبورد دکمه F11 رو میزنید تا صفحه FullScreen بشه و سپس دکمه PrintScreen رو میزنید تا یک تصویر از صفحه تون بگیره و سپس با استفاده از یک برنامه ادیتور تصویر مثل فوتوشاپ یا gimp اونو paste میکنید !
آههههه ، چه سخت شد :)
انگار یادم رفته من یه برنامه نویسم !
خیله خب هر چی که گفتم رو دور بریزید ، امروز میخوام یه کار دیگه بکنیم ، شاید روزی روزگاری هزار تا لینک دادن بهتون و گفتن ازشون عکس بگیر ، یا پرینت بگیر یا شایدم لازم شد توی سایتتون اسکرین شات سایتهای کاربراتونو نشون بدید یا هر چی
خب بریم ادامه مطلب
ادامه مطلب ...
لینک کوتاه
چهارشنبه , 16 اردیبهشت 1394
17 دیدگاه
وبسرویس بانک سامان یکی از ساده ترین وبسرویس هاست و به راحتی هر برنامه نویس آماتوری میتواند نحوه اتصال به این سیستم را پیاده سازی کند
حتی دیده شده بسیاری از سایتهای درگاه واسط با الگو گیری از این روش اقدام به ارائه وبسرویس به مشتری هاشون شده اند .
این وبسرویس ساده بانک سامان متاسفانه مشکلات زیادی به همراه دارد و امکان سواستفاده فراوانی میدهد
اما اگر همه چیز اصولی باشد ، جز یک پرداخت موفق و مطمئن ، شاهد هیچ کاری نخواهیم بود !
خب جهت مشاهده کامل آموزش به ادامه مطلب رجوع کنید .
ادامه مطلب ...