GO
CREATE TABLE [dbo].[CmnLanguage]
(
[Id] [char](2) NOT NULL CONSTRAINT PkCmnLanguage_Id PRIMARY KEY,
[UniqueName] [varchar](26) NOT NULL,
[NativeName] [nvarchar](26) NOT NULL,
[DirectionType] [smallint] NOT NULL,
[IsVisible] [bit] NOT NULL,
[CreatedDateTime] [datetime] NOT NULL DEFAULT GETDATE(),
[ModifiedDateTime] [datetime] NULL
)
GO
CREATE TABLE [dbo].[CmnLink]
(
[Id] [int] IDENTITY(1,1) NOT NULL CONSTRAINT PkCmnLink_Id PRIMARY KEY,
[UniqueName] [varchar](52) NOT NULL,
[IsVisible] [bit] NOT NULL,
[CreatedDateTime] [datetime] NOT NULL DEFAULT GETDATE(),
[ModifiedDateTime] [datetime] NULL
)
GO
CREATE TABLE [dbo].[CmnLinkCmnLanguage]
(
[LinkId] [int] NOT NULL CONSTRAINT FkCmnLinkCmnLanguage_LinkId FOREIGN KEY (LinkId) REFERENCES CmnLink(Id) ON DELETE CASCADE,
[LanguageId] [char](2) NOT NULL CONSTRAINT FkCmnLinkCmnLanguage_LanguageId FOREIGN KEY (LanguageId) REFERENCES CmnLanguage(Id) ON UPDATE CASCADE ON DELETE CASCADE,
[CreatedDateTime] [datetime] NOT NULL DEFAULT GETDATE(),
[ModifiedDateTime] [datetime] NULL
)
Well, thats not really a schema at all. Thats a script. Sometimes also called a Create Script or Change script. I suppose someone may refer to it as a schema since it really is a deffinition of a set of tables (3 of them)
Try it out, see if it works. Run this inside a project and see if your tables and relationships get generated correctly.
|||
I already test it. But I am asking Is it valid in respect of rules.
|||I think what you're asking is: Does it follow best pratices. There's no way for us to know what rules you'd like it to follow, but best pratices are kind of dictated by the most elegant way of doing something.
I've run your scripts on a database, and had it create the three tables, and 2 relationships. I'm not quite sure what you're trying to accomplish. It appears to be some sort of localization mapping set of tables, but I am not sure I understand why the CmnLinkCmnLanguage table exists, it doesnt make sense to me why it's there?
Could you explain further what you're end goal is, and what you hope to accomplish with these sets of tables?
|||
Ok I will explain it from start.
I am working on a completely multilingual website.
Now at this point I am working on Database end.
As this is a multilingual website so I need the Language Table as show below.
----------
Language
----------
Id
RomanName
NativeName
Direction
IsVisible
----------
Next.
I have Book Table.
----------
Book
----------
Id
RomanName
NativeName
IsVisible
----------
Every thing is fine till here.
But I have a limited type of Books and each book is avalaible in different languages.
For Example I add a book translated in Arabic, Urdu and English.
These three books have different ID. But these are the translation of Same book.
And when I have this Book in Urdu By default. And need all the available languages for this book then problem occurs.
To resovle this issue I modify the Book Table and break it into 2 Tables.
----------
Book
----------
Id
RomanName
IsVisible
----------
----------
BookNative
----------
BookId
LanguageId
NativeName
----------
Then an ID will assign for the book and all available language editions have not the ID.
At this end the above mentioned goal will got.
But I explain it on another post
http://forums.asp.net/t/1145293.aspx
And they replied its not correct.
Then again I think it for some time.
And another solution will come in mind.
That make a single Table for Book
----------
Book
----------
Id
Name
IsVisible
BookGroupID
----------
And for the above mentioned goal make a separate BookGroup Table
----------
BookGroup
----------
Id
Name
IsVisible
----------
After this solution Book Table is alone.
That was all the story.
Hope you will pick it.
And reply me with some great idea.
Waiting for your reply.
No comments:
Post a Comment