Can I make a primary key like 'c0001, c0002' and for supplier 's0001, s0002' in one table?
The idea in database design, is to keep each data element separate. And each element has its own datatype, constraints and rules. That c0002 is not one field, but two. Same with XXXnnn or whatever. It is incorrect , and it will severely limit your ability to use the data, and use database features and facilities.
c0002
XXXnnn
Break it up into two discrete data items: column_1 CHAR(1) column_2 INTEGER
column_1 CHAR(1) column_2 INTEGER
Then set AUTOINCREMENT on column_2
column_2
And yes, your Primary Key can be (column_1, column_2), so you have not lost whatever meaning c0002 has for you.
(column_1, column_2)
Never place suppliers and customers (whatever "c" and "s" means) in the same table. If you do that, you will not have a database table, you will have a flat file. And various problems and limitations consequent to that.
That means, Normalise the data. You will end up with:
Person
Organisation
Name, Address
Customer
CreditLimit
Supplier
PaymentTerms
And when you need to add columns, you do it only where it is required, without affecting all the other sues of the flat file. The scope of effect is limited to the scope of change.
2.1m questions
2.1m answers
60 comments
57.0k users